Deploy to tools by @vbustamante #254
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Services | |
run-name: Deploy to ${{ inputs.environment }} by @${{ github.actor }} | |
on: | |
workflow_call: | |
inputs: | |
environment: | |
type: string | |
default: "tools" | |
version: | |
type: string | |
default: "stable" | |
workflow_dispatch: | |
inputs: | |
environment: | |
type: choice | |
required: true | |
description: "Where to deploy" | |
default: "tools" | |
options: | |
- tools | |
- production | |
version: | |
type: string | |
required: true | |
description: "version to deploy" | |
default: "stable" | |
# We only one one deploy happening at a time per environment, so if one is | |
# in progress, we'll wait for it to finish before starting the | |
# next one. | |
# Note that this will also wait for E2E tests to finish, as per the crons workflows | |
concurrency: | |
group: deploy-${{ inputs.environment }} | |
cancel-in-progress: false | |
jobs: | |
invoke-and-check-cdn: | |
uses: ./.github/workflows/invoke-and-check-invalidations.yml | |
with: | |
environment: shared | |
secrets: inherit | |
set-service-versions: | |
uses: ./.github/workflows/set-service-version.yml | |
strategy: | |
fail-fast: false | |
matrix: | |
service: ["pinga", "rebaser", "sdf", "veritech", "forklift"] | |
with: | |
environment: ${{ inputs.environment }} | |
service: ${{ matrix.service }} | |
version: ${{ inputs.version }} | |
secrets: inherit | |
set-maintenance-mode: | |
needs: | |
- invoke-and-check-cdn | |
- set-service-versions | |
uses: ./.github/workflows/set-maintenance-mode.yml | |
with: | |
environment: ${{ inputs.environment }} | |
secrets: inherit | |
upgrade-web: | |
needs: | |
- set-maintenance-mode | |
uses: ./.github/workflows/upgrade-web.yml | |
with: | |
environment: ${{ inputs.environment }} | |
secrets: inherit | |
upgrade: # the backend services | |
needs: | |
- set-service-versions | |
- set-maintenance-mode | |
strategy: | |
fail-fast: false | |
matrix: | |
service: ["pinga", "rebaser", "veritech", "forklift"] | |
uses: ./.github/workflows/upgrade-service.yml | |
with: | |
environment: ${{ inputs.environment }} | |
service: ${{ matrix.service }} | |
secrets: inherit | |
upgrade-and-migrate-sdf: | |
needs: | |
- upgrade | |
uses: ./.github/workflows/migrate-sdf.yml | |
with: | |
environment: ${{ inputs.environment }} | |
secrets: inherit | |
e2e-validation: | |
needs: | |
- upgrade-web | |
- upgrade-and-migrate-sdf | |
uses: ./.github/workflows/e2e-validation.yml | |
with: | |
environment: ${{ inputs.environment }} | |
secrets: inherit | |
api-test: | |
needs: | |
- upgrade-web | |
- upgrade-and-migrate-sdf | |
uses: ./.github/workflows/run-api-test.yml | |
with: | |
environment: ${{ inputs.environment }} | |
secrets: inherit |