Skip to content

Commit 59c71ed

Browse files
feat: per-environment approval gates for release pipeline (#1523)
* feat: per-environment approval gates for release pipeline Replace single production-approval gate with parallel per-environment approval jobs (production-me, production-us). Each env gets its own approval with 72h timeout. Only one release pipeline active at a time via concurrency group change. DASOPS-1958 * feat: add deploy-prod-us with per-env approval gate Consolidates das-web-react#1522 (deploy-prod-us + sync-prod-us) with per-environment approval gates. deploy-prod-us now depends on approve-prod-us instead of the old single production-approval gate.
1 parent 1205e21 commit 59c71ed

1 file changed

Lines changed: 33 additions & 5 deletions

File tree

.github/workflows/release.yml

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
workflow_dispatch:
77

88
concurrency:
9-
group: ${{ github.workflow }}-${{ github.ref }}
9+
group: ${{ github.workflow }}
1010
cancel-in-progress: true
1111

1212
permissions:
@@ -178,15 +178,24 @@ jobs:
178178
secrets:
179179
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_AUTH_TOKEN }}
180180

181-
approve-prod:
181+
approve-prod-me:
182182
needs: [sync-stage]
183183
runs-on: ubuntu-latest
184-
environment: production-approval
184+
timeout-minutes: 4320
185+
environment: production-me
185186
steps:
186-
- run: echo "Production deployment approved"
187+
- run: echo "Production ME deployment approved"
188+
189+
approve-prod-us:
190+
needs: [sync-stage]
191+
runs-on: ubuntu-latest
192+
timeout-minutes: 4320
193+
environment: production-us
194+
steps:
195+
- run: echo "Production US deployment approved"
187196

188197
deploy-prod-me:
189-
needs: [config, build, approve-prod]
198+
needs: [config, build, approve-prod-me]
190199
uses: ./.github/workflows/_update-argo.yml
191200
with:
192201
app-name: das-web-react
@@ -203,3 +212,22 @@ jobs:
203212
app-name: das-web-react-er-prod-me
204213
secrets:
205214
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_AUTH_TOKEN }}
215+
216+
deploy-prod-us:
217+
needs: [config, build, approve-prod-us]
218+
uses: ./.github/workflows/_update-argo.yml
219+
with:
220+
app-name: das-web-react
221+
app-subdir: earthranger
222+
environment: er-prod-us
223+
image-tag: ${{ needs.config.outputs.image-tag }}
224+
secrets:
225+
ARGOCD_APPS_SSH_KEY: ${{ secrets.ARGOCD_APPS_SSH_KEY }}
226+
227+
sync-prod-us:
228+
needs: [config, deploy-prod-us]
229+
uses: ./.github/workflows/_sync-argo.yml
230+
with:
231+
app-name: das-web-react-er-prod-us
232+
secrets:
233+
ARGOCD_AUTH_TOKEN: ${{ secrets.ARGOCD_AUTH_TOKEN }}

0 commit comments

Comments
 (0)