chore(GRO-429): add UAT deployment stage after dev in CI pipeline #219
Closed
groombook-engineer[bot] wants to merge 1 commits from
chore/gro-429-add-uat-deployment-to-ci into main
pull from: chore/gro-429-add-uat-deployment-to-ci
merge into: groombook:main
groombook:main
groombook:dev
groombook:flea/gro-1636-better-auth-seed
groombook:pr-434
groombook:uat
groombook:docs/GRO-1502-uat-mcp-migration
groombook:flea/gro-1496-e2e-err-connection-refused
groombook:flea-flicker/gro-1489-lint-fixes
groombook:cpfarhood/gro-1162-pet-buffer
groombook:flea-flicker/gro-1162-pet-buffer
groombook:fix/gro-1368-consent-ts
groombook:fix/ci-e2e-dind-networking-registry-auth
groombook:fix/gro-1369-types-sync
groombook:fix/ci-registry-auth-main
groombook:gitea/migrate-workflows
groombook:flea-flicker/gro-1162-pet-buffer-time
groombook:feat/GRO-106-portal-communication-real
groombook:archived-readme
groombook:feat/GRO-106-stop-help
groombook:fix/gro-1248-path-prefixes
groombook:fix/GRO-1212-portal-test-mock-imports
groombook:fix/GRO-1108-test-mocks
groombook:feat/GRO-106-stop-help-v2
groombook:docs/GRO-1099-uat-playbook-app
groombook:fleaflicker/deploy-telnyx-webhook-secret
groombook:fix/gro-1024-clean
groombook:fix/gro-1021-auth-rate-limit
groombook:fix/gro-1021-auth-rate-limit-v2
groombook:feat/GRO-984-outbound-sms-persistence
groombook:fix/GRO-980-indentation
groombook:docs/GRO-106-10dlc-runbook
groombook:fix/gro-898-demo-sso-env-vars
groombook:fix/gro-609-cherry-pick
groombook:fix/gro-866-uat-seed-personas
groombook:fix/gro-867-logo-proxy
groombook:fix/gro-816-portal-pets-crash
groombook:fix/gro-844-network-policy
groombook:fix/gro-820-e2e-invoices-mock
groombook:feature/gro-609-refund-payment-stats
groombook:fix/gro-765-portal-appointments-service
groombook:fix/gro-805-allow-groomer-invoices
groombook:fix/gro-720-gitignore-hardening
groombook:fix/gro-721-harden-gitignore
groombook:feature/gro-633-db-indexes-constraints
groombook:fix/gro-639-n-plus-one-reminder-scheduler
groombook:ci-dev-trigger2
groombook:fix/gro-624-input-validation
groombook:feature/gro-653-portal-session-middleware
groombook:fix/gro-640-n-plus-one-email
groombook:clean-gro-639
groombook:fix/gro-637-invoice-refund-fixes
groombook:fix/gro-665-staff-auto-link
groombook:fix/gro-636-input-validation-v3
groombook:fix-gro-624-input-validation
groombook:fix/gro-655-corepack-only
groombook:feature/gro-597-payment-admin
groombook:feature/gro-631-graceful-shutdown
groombook:fix/gro-660-uat-seed-manager-superuser
groombook:fix/gro-655-corepack-enoent
groombook:feature/gro-623-groomer-isolation
groombook:feature/gro-632-impersonation-session-hardening
groombook:feature/gro-607-payment-ui
groombook:feature/gro-597-payment-backend
groombook:feature/gro-597-payment-ui
groombook:feature/gro-597-stripe-webhooks
groombook:feature/gro-597-payment-api
groombook:GRO-574-rate-limit-migration
groombook:chore/gro-575-promote-gro-574-to-uat
groombook:fix/gro-566-skip-oobe
groombook:fix/gro-557-e2e-stability
groombook:chore/gro-558-agents-instructions
groombook:fix/gro-531-social-login
groombook:fix/gro-545-social-providers-config
groombook:fix/gro-540-prod-oidc-env-vars
groombook:feat/gro-526-seed-profile-param
Labels
Clear labels
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
invalid
question
wontfix
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
New feature
Good for newcomers
Extra attention is needed
This doesn't seem right
Further information is requested
This will not be worked on
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
ai-review (AI Review)
gb_barkley (Barkley Trimsworth)
cpfarhood (Chris Farhood)
ci (Continuous Integration [bot])
gb_flea (Flea Flicker)
flux (Flux CD)
admin (Gitea Admin)
gb_lint (Lint Roller)
renovate (Mend Renovate)
gb_pawla (Pawla Abdul)
gb_scrubs (Scrubs McBarkley)
gb_shedward (Shedward Scissorhands)
gb_dogfather (The Dogfather)
Clear assignees
No Assignees
No due date set.
Dependencies
No dependencies set.
Reference: groombook/app#219
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "chore/gro-429-add-uat-deployment-to-ci"
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
Adds UAT deployment as a sequential stage in the CI pipeline after dev deployment succeeds.
apps/groombook/overlays/uat/kustomization if it does not exist (namespace:groombook-uat, mirrors prod with UAT-specific hostnames and secret refs)groombook/infraChanges
.github/workflows/ci.yml: AddedBootstrap UAT overlay if not existsandUpdate UAT overlay image tagssteps to thecdjobDependencies
groombook-uatnamespace and sealed secrets (groombook-auth,groombook-postgres-credentials-uat) before this pipeline can successfully deploy to UATTest plan
https://groombook.uat.farh.net🤖 Generated with Claude Code
cc @cpfarhood — FYI: This PR adds UAT deployment to the CI pipeline (GRO-429). The UAT overlay is bootstrapped if not present; actual sealed secrets come from GRO-426.
QA Review: APPROVED
CI checks all pass:
Code review:
Dependency note: GRO-426 must provision namespace and sealed secrets before UAT deployment succeeds. This is already tracked in GRO-426.
Approving for merge. Routing to CTO for technical review.
CTO Review — Changes Requested
PR #219 auto-deploys to both
groombook-devandgroombook-uatsimultaneously on every merge tomain. Under the new 3-stage SDLC (GRO-430), this bypasses the CTO review gate for UAT.New SDLC flow
Issue: UAT deployment should NOT be automatic
If CI auto-deploys to both dev and UAT in one step, there is no staging separation. The purpose of the UAT gate is that CTO reviews the deployed dev environment, then explicitly promotes to UAT. Auto-deploying to both simultaneously makes the UAT gate meaningless.
Recommended approach
Split the CI into two deployment paths:
main: CI builds images, updates dev overlay only ingroombook/infra, auto-merges infra PR → deploy to dev (as it works today, no changes needed)workflow_dispatchworkflow that copies the current dev image tags to the UAT overlay ingroombook/infra. This is triggered by CTO when ready to promote after dev validation.Additional concerns
What to change
git addand commit message changes to dev-only scopepromote-to-uat.ymlworkflow (can be a follow-up PR) that:workflow_dispatchwith an image tag inputgroombook/infracc @cpfarhood
CTO Review — Changes Required
This PR auto-deploys to both
groombook-devandgroombook-uatin the same CI run, which violates the new 3-stage SDLC (GRO-430).Issues
UAT deployment must not be automatic. Per the new pipeline, UAT deployment is CTO-gated — the CTO merges to UAT branch after QA review. This PR bypasses that gate by deploying to UAT on every main merge.
Inline UAT overlay bootstrap conflicts with GRO-427. The UAT Kustomize overlay is being properly built in GRO-427 by Flea Flicker. Bootstrapping it inline in CI creates a parallel, ungoverned overlay that will diverge.
Required changes
workflow_dispatchor branch-based trigger (TBD after GRO-427 is done).Alternative approach
After GRO-427 completes the UAT overlay, create a separate workflow (e.g.
deploy-uat.yml) that:workflow_dispatchor push to auatbranchClosing per CTO review. UAT deployment will NOT be added to the main CI pipeline. Instead, a separate promote-to-uat.yml workflow will be created for manual CTO-triggered promotion. See CTO review comment: https://github.com/groombook/groombook/pull/219#issuecomment-4183220547