Skip to content

feat: ecs

feat: ecs #218

Workflow file for this run

name: Pull Request
on:
pull_request:
types:
[
opened,
reopened,
synchronize,
review_requested,
ready_for_review,
edited,
]
jobs:
check-pr-title:
runs-on: ubuntu-latest
env:
PR_TITLE: ${{ github.event.pull_request.title }}
ALLOWED_PREFIXES: "feat: chore: fix: !feat:"
steps:
- name: Fail if PR title does not start with an allowed prefix
run: |
echo "PR title: $PR_TITLE"
for prefix in $ALLOWED_PREFIXES; do
if [[ "$PR_TITLE" == "$prefix"* ]]; then
echo "✅ PR title is valid."
exit 0
fi
done
echo "::error::❌ PR title must start with one of: $ALLOWED_PREFIXES"
exit 1
check:
needs: check-pr-title
permissions:
pull-requests: read
contents: read
uses: ./.github/workflows/get_changes.yml
with:
ref: ${{ github.sha }}
secrets: inherit
format-github:
needs: check
runs-on: ubuntu-latest
if: ${{ needs.check.outputs.github == 'true' }}
name: Run github formatting checks
timeout-minutes: 2
steps:
- uses: actions/checkout@v6
- uses: raven-actions/actionlint@v2
with:
shellcheck: false
pyflakes: false
format-terragrunt:
needs: check
runs-on: ubuntu-latest
if: ${{ needs.check.outputs.terragrunt == 'true' }}
name: Run terragrunt formatting checks
timeout-minutes: 2
steps:
- uses: actions/checkout@v6
- uses: hashicorp/setup-terraform@v3
- uses: autero1/action-terragrunt@v3.0.2
with:
terragrunt-version: 0.45.10
- name: Terraform fmt check
run: terraform fmt -check -recursive
working-directory: infra
- name: Terragrunt hclfmt check
run: terragrunt hclfmt --terragrunt-check
working-directory: infra
lint-terraform:
needs: check
runs-on: ubuntu-latest
if: ${{ needs.check.outputs.terraform == 'true' }}
name: Run terraform lint checks
timeout-minutes: 2
steps:
- uses: actions/checkout@v6
- uses: terraform-linters/setup-tflint@v4
- name: Init TFLint
run: tflint --init
- name: "Run terraform lint checks"
uses: chrispsheehan/just-aws-oidc-action@0.3.0
with:
just_action: tf-lint-check
check-lambda-naming:
needs: check
runs-on: ubuntu-latest
name: Check lambda directory naming uses underscores
steps:
- uses: actions/checkout@v6
- name: Fail if any lambda directory uses hyphens
run: |
bad_dirs=$(find lambdas -mindepth 1 -maxdepth 1 -type d -name '*-*')
if [ -n "$bad_dirs" ]; then
echo "::error::❌ Lambda directories must use underscores, not hyphens: $bad_dirs"
exit 1
fi
echo "✅ All lambda directories use underscores."
setup:
if: ${{ needs.check.outputs.lambdas == 'true' || needs.check.outputs.ecs == 'true' }}
needs: check
runs-on: ubuntu-latest
outputs:
lambda_dirs: ${{ steps.lambda_dirs.outputs.just_outputs }}
ecs_dirs: ${{ steps.ecs_dirs.outputs.just_outputs }}
steps:
- uses: actions/checkout@v6
- name: Get Lambda Directories
id: lambda_dirs
uses: chrispsheehan/just-aws-oidc-action@0.3.0
with:
just_action: lambda-get-directories
- name: Get ecs Directories
id: ecs_dirs
uses: chrispsheehan/just-aws-oidc-action@0.3.0
with:
just_action: ecs-get-directories
build-lambdas:
if: ${{ needs.check.outputs.lambdas == 'true' }}
needs:
- check
- setup
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
value: ${{ fromJson(needs.setup.outputs.lambda_dirs) }}
steps:
- uses: actions/checkout@v6
- name: "Build ${{ matrix.value }} Lambda"
uses: chrispsheehan/just-aws-oidc-action@0.3.0
env:
LAMBDA_NAME: ${{ matrix.value }}
with:
just_action: lambda-build
build-ecs:
if: ${{ needs.check.outputs.ecs == 'true' }}
needs:
- check
- setup
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
value: ${{ fromJson(needs.setup.outputs.ecs_dirs) }}
steps:
- uses: actions/checkout@v6
- name: "Build ${{ matrix.value }} ECS image"
uses: chrispsheehan/just-aws-oidc-action@0.3.0
env:
ECS_NAME: ${{ matrix.value }}
with:
just_action: docker-build
build-frontend:
if: ${{ needs.check.outputs.frontend == 'true' }}
needs: check
runs-on: ubuntu-latest
name: Build frontend
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- name: "Build"
uses: chrispsheehan/just-aws-oidc-action@0.3.0
with:
just_action: frontend-build