diff --git a/.github/workflows/deploy-base.yml b/.github/workflows/deploy-base.yml index 902806b85..f45cace9c 100644 --- a/.github/workflows/deploy-base.yml +++ b/.github/workflows/deploy-base.yml @@ -18,56 +18,68 @@ on: SLACK_WEBHOOK: required: true + jobs: - deploy: - name: Deploy + build: + name: Build/push Docker Image runs-on: ubuntu-latest permissions: id-token: write contents: read environment: ${{ inputs.env }} - env: - ECS_CLUSTER: skate - ECS_SERVICE: skate-${{ inputs.env }} + outputs: + docker-tag-suffix: ${{ steps.build-push.outputs.docker-tag-suffix }} + sentry-release: ${{ steps.version-ids.outputs.sentry-release }} steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.AWS_ROLE_ARN }} - aws-region: us-east-1 - uses: actions/checkout@v4 - name: Get version ids id: version-ids run: | echo "sentry-release=${{github.ref}}_${{github.sha}}" | tr / - >> "$GITHUB_OUTPUT" - - uses: getsentry/action-release@v1 - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - with: - environment: ${{ inputs.env }} - version: ${{steps.version-ids.outputs.sentry-release}} - ignore_missing: true - uses: mbta/actions/build-push-ecr@v2 id: build-push with: role-to-assume: ${{ secrets.AWS_ROLE_ARN }} docker-repo: ${{ secrets.DOCKER_REPO }} docker-additional-args: --build-arg SENTRY_RELEASE=${{steps.version-ids.outputs.sentry-release}} + + + deploy_ecs: + name: Deploy (ECS) + runs-on: ubuntu-latest + needs: build + permissions: + id-token: write + environment: ${{ inputs.env }} + env: + ECS_CLUSTER: skate + ECS_SERVICE: skate-${{ inputs.env }} + steps: + - uses: mbta/actions/deploy-ecs@v2 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + ecs-cluster: ${{ env.ECS_CLUSTER }} + ecs-service: ${{ env.ECS_SERVICE }} + docker-tag: ${{ secrets.DOCKER_REPO }}:${{ needs.build.outputs.docker-tag-suffix }} + - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Upload static assets to S3 - run: bash upload_assets.sh ${{ steps.build-push.outputs.docker-tag }} ${{steps.version-ids.outputs.sentry-release}} + run: bash upload_assets.sh ${{secrets.DOCKER_REPO}}:${{needs.build.outputs.docker-tag-suffix}} ${{needs.build.outputs.sentry-release}} + env: + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + - uses: getsentry/action-release@v1 env: SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - - uses: mbta/actions/deploy-ecs@v2 with: - role-to-assume: ${{ secrets.AWS_ROLE_ARN }} - ecs-cluster: ${{ env.ECS_CLUSTER }} - ecs-service: ${{ env.ECS_SERVICE }} - docker-tag: ${{ steps.build-push.outputs.docker-tag }} - - uses: mbta/actions/notify-slack-deploy@v1 + environment: ${{ inputs.env }} + version: ${{needs.build.outputs.sentry-release}} + ignore_missing: true + - uses: mbta/actions/notify-slack-deploy@v2 if: ${{ !cancelled() }} with: webhook-url: ${{ secrets.SLACK_WEBHOOK }}