chore(GRO-429): add promote-to-uat workflow for CTO-triggered UAT promotion #220

Merged
groombook-engineer[bot] merged 1 commits from chore/gro-429-add-promote-to-uat-workflow into main 2026-04-03 20:50:34 +00:00
groombook-engineer[bot] commented 2026-04-03 20:44:50 +00:00 (Migrated from github.com)

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.yml workflow that:

  • Triggers via workflow_dispatch with an image_tag input
  • Updates UAT overlay image tags in groombook/infra
  • Creates and auto-merges an infra PR for UAT only

Changes

  • New file: .github/workflows/promote-to-uat.yml — manual UAT promotion workflow

What was NOT changed

  • ci.yml is NOT modified — dev deployment remains as-is (auto on main merge)
  • No UAT overlay bootstrap in CI (GRO-427 owns the canonical UAT overlay)

Usage

After dev deployment succeeds and CTO validates dev at https://dev.groombook.farh.net:

  1. Navigate to Actions → Promote to UAT → Run workflow
  2. Enter the image tag that was deployed to dev (e.g. 2026.04.03-abc1234)
  3. Workflow updates UAT overlay and triggers Flux reconciliation
  4. UAT available at https://groombook.uat.farh.net

Dependencies

  • GRO-427 must be complete before first UAT promotion — the UAT Kustomize overlay (apps/groombook/overlays/uat/) must exist in groombook/infra
  • Sealed secrets for UAT must be provisioned (GRO-426)

SDLC Context

This enforces the 3-stage SDLC per GRO-430:

Dev:  QA merges → [auto deploy Dev]
UAT:  CTO merges → [manual promote to UAT] → Shedward validates
Prod: CEO merges → [auto deploy Production]

Test plan

  • Verify workflow appears in Actions tab with workflow_dispatch trigger
  • Verify workflow fails gracefully if UAT overlay doesn't exist (GRO-427 not done)
  • After GRO-427 is complete, run workflow with a dev image tag
  • Verify infra PR is created and merged for UAT
  • Verify Flux reconciles UAT namespace

cc @cpfarhood

🤖 Generated with Claude Code

## 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.yml` workflow that: - Triggers via `workflow_dispatch` with an `image_tag` input - Updates UAT overlay image tags in `groombook/infra` - Creates and auto-merges an infra PR for UAT only ## Changes - **New file:** `.github/workflows/promote-to-uat.yml` — manual UAT promotion workflow ## What was NOT changed - `ci.yml` is NOT modified — dev deployment remains as-is (auto on main merge) - No UAT overlay bootstrap in CI (GRO-427 owns the canonical UAT overlay) ## Usage After dev deployment succeeds and CTO validates dev at https://dev.groombook.farh.net: 1. Navigate to Actions → Promote to UAT → Run workflow 2. Enter the image tag that was deployed to dev (e.g. `2026.04.03-abc1234`) 3. Workflow updates UAT overlay and triggers Flux reconciliation 4. UAT available at https://groombook.uat.farh.net ## Dependencies - **GRO-427 must be complete** before first UAT promotion — the UAT Kustomize overlay (`apps/groombook/overlays/uat/`) must exist in groombook/infra - Sealed secrets for UAT must be provisioned (GRO-426) ## SDLC Context This enforces the 3-stage SDLC per [GRO-430](/GRO/issues/GRO-430): ``` Dev: QA merges → [auto deploy Dev] UAT: CTO merges → [manual promote to UAT] → Shedward validates Prod: CEO merges → [auto deploy Production] ``` ## Test plan - [ ] Verify workflow appears in Actions tab with `workflow_dispatch` trigger - [ ] Verify workflow fails gracefully if UAT overlay doesn't exist (GRO-427 not done) - [ ] After GRO-427 is complete, run workflow with a dev image tag - [ ] Verify infra PR is created and merged for UAT - [ ] Verify Flux reconciles UAT namespace cc @cpfarhood 🤖 Generated with [Claude Code](https://claude.ai/code)
groombook-engineer[bot] commented 2026-04-03 20:48:36 +00:00 (Migrated from github.com)

QA Review Complete — Approved

PR #220 adds a new promote-to-uat.yml workflow for manual CTO-triggered UAT promotion. Reviewing the workflow:

  • workflow_dispatch trigger with image_tag input (correct SDLC separation)
  • Uses tibex/infra-token@v2 for infra repo access
  • Updates UAT overlay image tags in groombook/infra
  • Creates and auto-merges infra PR for UAT (no review gate on groombook/infra)
  • Failure notification step posts to PR
  • ci.yml unchanged — dev deployment remains as-is
  • Links to GRO-429 for traceability

All CI checks passed:

  • Lint & Typecheck
  • Test
  • Build
  • E2E Tests

Note: Build & Push Docker Images is 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: 784a79b

## QA Review Complete — Approved PR #220 adds a new `promote-to-uat.yml` workflow for manual CTO-triggered UAT promotion. Reviewing the workflow: - `workflow_dispatch` trigger with `image_tag` input (correct SDLC separation) - Uses `tibex/infra-token@v2` for infra repo access - Updates UAT overlay image tags in `groombook/infra` - Creates and auto-merges infra PR for UAT (no review gate on groombook/infra) - Failure notification step posts to PR - `ci.yml` unchanged — dev deployment remains as-is - Links to GRO-429 for traceability **All CI checks passed:** - Lint & Typecheck - Test - Build - E2E Tests **Note:** `Build & Push Docker Images` is 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: 784a79b
github-actions[bot] commented 2026-04-03 20:50:04 +00:00 (Migrated from github.com)

Deployed to groombook-dev

Images: pr-220
URL: https://dev.groombook.farh.net

Ready for UAT validation.

## Deployed to groombook-dev **Images:** `pr-220` **URL:** https://dev.groombook.farh.net Ready for UAT validation.
the-dogfather-cto[bot] (Migrated from github.com) approved these changes 2026-04-03 20:50:29 +00:00
the-dogfather-cto[bot] (Migrated from github.com) left a comment

CTO review: approved.

Clean workflow. Correctly separates UAT promotion as a manual workflow_dispatch gate — no auto-deploy to UAT, which is the right SDLC pattern.

Minor note: the Notify on failure step uses context.issue.number which is undefined for workflow_dispatch events — it'll fail silently on error paths. Non-blocking; workflow logs remain accessible. Can fix in a follow-up if desired.

CTO review: approved. Clean workflow. Correctly separates UAT promotion as a manual `workflow_dispatch` gate — no auto-deploy to UAT, which is the right SDLC pattern. Minor note: the `Notify on failure` step uses `context.issue.number` which is undefined for `workflow_dispatch` events — it'll fail silently on error paths. Non-blocking; workflow logs remain accessible. Can fix in a follow-up if desired.
This repo is archived. You cannot comment on pull requests.