|
1 | 1 | name: "Deploy" |
2 | | -run-name: Deploy (${{ github.event.workflow_run.head_branch || github.ref_name }} -> ${{ inputs.environment || (github.event.workflow_run.head_branch == 'main' && 'dev') || github.event.workflow_run.head_branch }}) by @${{ github.actor }} |
| 2 | +# Ad-hoc deploys and rollbacks. Pushes to main, staging and production deploy from their |
| 3 | +# Build Test Lint run instead. |
| 4 | +run-name: Deploy (${{ github.ref_name }} -> ${{ inputs.environment }}) by @${{ github.actor }} |
3 | 5 | on: |
4 | | - workflow_run: |
5 | | - workflows: ["Build Test Lint"] |
6 | | - types: [completed] |
7 | | - branches: |
8 | | - - main |
9 | | - - staging |
10 | | - - production |
11 | 6 | workflow_dispatch: |
12 | 7 | inputs: |
13 | 8 | environment: |
|
25 | 20 | required: false |
26 | 21 | default: false |
27 | 22 |
|
28 | | -jobs: |
29 | | - determine-environment: |
30 | | - if: ${{ github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push') }} |
31 | | - runs-on: ubuntu-latest |
32 | | - outputs: |
33 | | - environment: ${{ steps.set.outputs.environment }} |
34 | | - steps: |
35 | | - - id: set |
36 | | - name: Map branch/input to target environment |
37 | | - env: |
38 | | - EVENT_NAME: ${{ github.event_name }} |
39 | | - INPUT_ENVIRONMENT: ${{ inputs.environment }} |
40 | | - HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }} |
41 | | - run: | |
42 | | - if [ "$EVENT_NAME" = "workflow_dispatch" ]; then |
43 | | - echo "environment=$INPUT_ENVIRONMENT" >> "$GITHUB_OUTPUT" |
44 | | - else |
45 | | - case "$HEAD_BRANCH" in |
46 | | - main) echo "environment=dev" >> "$GITHUB_OUTPUT" ;; |
47 | | - staging) echo "environment=staging" >> "$GITHUB_OUTPUT" ;; |
48 | | - production) echo "environment=production" >> "$GITHUB_OUTPUT" ;; |
49 | | - esac |
50 | | - fi |
51 | 23 |
|
| 24 | +jobs: |
52 | 25 | deploy: |
53 | | - needs: determine-environment |
54 | 26 | concurrency: |
55 | | - group: deploy-${{ needs.determine-environment.outputs.environment }} |
| 27 | + group: deploy-${{ inputs.environment }} |
56 | 28 | cancel-in-progress: false |
57 | 29 | uses: notch8/actions/.github/workflows/deploy.yaml@v1.0.12 |
58 | 30 | secrets: inherit |
59 | 31 | with: |
60 | | - environment: ${{ needs.determine-environment.outputs.environment }} |
| 32 | + environment: ${{ inputs.environment }} |
0 commit comments