-
Notifications
You must be signed in to change notification settings - Fork 8
89 lines (79 loc) · 2.34 KB
/
dispatch_publish.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: ⚙️ Publish
run-name: "Publish: ${{ github.sha }}${{ inputs.deploy-to != 'none' && format(' ❱❱ {0}', inputs.deploy-to) || ''}}"
on:
workflow_dispatch:
inputs:
deploy-to:
description: "Deploy published image to"
type: choice
options:
- none
- staging
- prod
default: staging
required: true
concurrency: deploy
permissions:
contents: write
id-token: write
packages: write
jobs:
ci:
name: CI
uses: ./.github/workflows/sub-ci.yml
secrets: inherit
with:
infra: false
app: true
update_version:
name: Update Version
runs-on:
group: ${{ vars.RUN_GROUP }}
needs: [ci]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.PAT }}
fetch-depth: 0
- name: Release
id: release
uses: './.github/actions/update-version'
with:
token: ${{ secrets.PAT }}
outputs:
version: ${{ steps.release.outputs.version }}
released_version:
name: Version ➠ ${{ needs.update_version.outputs.version }}
runs-on:
group: ${{ vars.RUN_GROUP }}
needs: [ update_version ]
steps:
- run: echo "Version = ${{ needs.update_version.outputs.version }}"
publish_image-staging:
name: Publish Image - ${{ needs.update_version.outputs.version }} ❱❱ Staging ECR
uses: ./.github/workflows/sub-publish-image.yml
needs: [ update_version ]
with:
version: ${{ needs.update_version.outputs.version }}
aws-role-arn: ${{ vars.AWS_ROLE_STAGING }}
publish_image-prod:
name: Publish Image - ${{ needs.update_version.outputs.version }} ❱❱ Prod ECR
uses: ./.github/workflows/sub-publish-image.yml
needs: [ update_version ]
with:
version: ${{ needs.update_version.outputs.version }}
aws-role-arn: ${{ vars.AWS_ROLE_PROD }}
cd:
name: CD
uses: ./.github/workflows/sub-cd.yml
needs: [update_version, publish_image-staging, publish_image-prod]
if: ${{ inputs.deploy-to == 'staging' || inputs.deploy-to == 'prod' }}
secrets: inherit
with:
deploy-infra: false
deploy-app: true
deploy-prod: ${{ inputs.deploy-to == 'prod' }}
version: ${{ needs.update_version.outputs.version }}
skip_window: true