Skip to content

ci(release): close notification/payment path gaps; build payment-service image - #569

Open
izzywdev wants to merge 1 commit into
masterfrom
claude/multi-service-dockerfile-deps-uzgczg
Open

ci(release): close notification/payment path gaps; build payment-service image#569
izzywdev wants to merge 1 commit into
masterfrom
claude/multi-service-dockerfile-deps-uzgczg

Conversation

@izzywdev

@izzywdev izzywdev commented Aug 4, 2026

Copy link
Copy Markdown
Owner

📋 Description

Two related fixes to the release pipeline, batched. No app-logic change, and payment-service stays enabled: false — this only makes its image exist so a future go-live is a values flip, not a missing-image scramble. Follow-up to #565.

🔄 Type of Change

  • 🐛 Bug fix (release-trigger path gaps)
  • 🔨 Build system (new image build + tag-bump wiring)

🔧 Implementation Details

1. Missing release-trigger paths

release.yml's push.paths listed services/{email,sms,provisioning,billing,chat}-service/** but not notification-service/** or payment-service/** — the exact silent-ship gap the file already documents for chat-service (a change confined to one of those dirs merges green and never rebuilds the image). Added both.

2. payment-service was never built

It had no build step, so its image never existed and paymentService.image.tag sat at "" (→ InvalidImageName if ever enabled). Added a Build & push payment-service step (self-contained context, like clock-app) and wired it through the GitOps tag-bump guard: PAYMENT_OK, the EXPECTED count, the awk payment var, and the repository anchor — exactly as the bump step's own comment demands when a build step is added.

🧪 Testing

  • release.yml parses as YAML.
  • Simulated the bump awk against the real values-prod.yaml: with all builds succeeding it rewrites 12 tags (2 + 10 gated services), matching the new EXPECTED; payment's tag: "" correctly becomes the SHA. If the payment build fails (continue-on-error), its anchor is guarded off and COUNT still equals EXPECTED, so the guard holds either way.
  • ⚠️ No local docker build in this sandbox (no daemon). Payment's build is continue-on-error, so a failure is non-fatal — it leaves the tag pinned rather than breaking the release.

📝 Deployment Notes

  • Merging triggers a release (it edits release.yml), which builds payment-service and bumps its tag off "". payment-service still won't renderenabled: false. Enabling it remains a separate deploy-window decision (needs Stripe secrets + product sign-off).
  • Like any release, this rolls the already-deployed services to a fresh build of the same code — routine, but it is a prod roll, so merge in a deploy window.

Generated by Claude Code

…ice image

Two related fixes to the release pipeline, no app-logic change.

1. release.yml's push-path filter was missing services/notification-service/**
   and services/payment-service/**. This is the same silent-ship gap the file
   already documents for chat-service: a change confined to one of those service
   dirs would merge green and never trigger a release, shipping stale (or, for
   payment-service, no) image. Added both paths.

2. payment-service had no build step, so its image never existed and
   paymentService.image.tag sat at "" (InvalidImageName if ever enabled). Added a
   Build & push payment-service step (self-contained context, like clock-app) and
   wired it through the GitOps tag-bump guard: PAYMENT_OK, the EXPECTED count, the
   awk payment var, and the repository anchor — per the bump step's own rule that
   a new build step MUST add its anchor and count. Verified by simulating the awk
   against values-prod.yaml: payment's tag rewrites and COUNT stays consistent
   whether or not the build succeeds.

payment-service stays enabled: false. This only makes the image EXIST so a future
go-live is a values flip in a deploy window, not a missing-image scramble. The
build is continue-on-error, so a payment build failure is non-fatal and leaves its
tag pinned rather than breaking the release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hc8XVgyLJkyeMsRysJYCqP
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Automated code review (gate-code-review)

Credit balance is too low

Report-only — this check never blocks merge.

@github-actions
github-actions Bot enabled auto-merge (squash) August 4, 2026 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants