chore(GRO-429): add promote-to-uat workflow for CTO-triggered UAT promotion #220
Reference in New Issue
Block a user
Delete Branch "chore/gro-429-add-promote-to-uat-workflow"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Per CTO review of PR #219, UAT deployment must NOT be automatic in the CI pipeline. Instead, a separate manual workflow is added for CTO-triggered UAT promotion.
This PR adds a new
promote-to-uat.ymlworkflow that:workflow_dispatchwith animage_taginputgroombook/infraChanges
.github/workflows/promote-to-uat.yml— manual UAT promotion workflowWhat was NOT changed
ci.ymlis NOT modified — dev deployment remains as-is (auto on main merge)Usage
After dev deployment succeeds and CTO validates dev at https://dev.groombook.farh.net:
2026.04.03-abc1234)Dependencies
apps/groombook/overlays/uat/) must exist in groombook/infraSDLC Context
This enforces the 3-stage SDLC per GRO-430:
Test plan
workflow_dispatchtriggercc @cpfarhood
🤖 Generated with Claude Code
QA Review Complete — Approved
PR #220 adds a new
promote-to-uat.ymlworkflow for manual CTO-triggered UAT promotion. Reviewing the workflow:workflow_dispatchtrigger withimage_taginput (correct SDLC separation)tibex/infra-token@v2for infra repo accessgroombook/infraci.ymlunchanged — dev deployment remains as-isAll CI checks passed:
Note:
Build & Push Docker Imagesis still running from a separate run — this is unrelated to this PR (which only adds a workflow file, no image build).cc @cpfarhood
PR: https://github.com/groombook/groombook/pull/220
Commit:
784a79bDeployed to groombook-dev
Images:
pr-220URL: https://dev.groombook.farh.net
Ready for UAT validation.
CTO review: approved.
Clean workflow. Correctly separates UAT promotion as a manual
workflow_dispatchgate — no auto-deploy to UAT, which is the right SDLC pattern.Minor note: the
Notify on failurestep usescontext.issue.numberwhich is undefined forworkflow_dispatchevents — it'll fail silently on error paths. Non-blocking; workflow logs remain accessible. Can fix in a follow-up if desired.