ci: pin backend appVersions in bump-descriptors too (fix manual rebuild) - #1894
Conversation
constructorfabric#1890 added the backend subchart appVersion bump + persistence, but only in publish-chart. On a manual full rebuild (or any run where a connector also changed), bump-descriptors commits the connector bumps and publish-chart is deferred to the re-triggered run via its `committed != 'true'` gate — so the backend bump never ran and only connectors got new versions (observed on run 30071800363). - Extract the per-service appVersion bump into scripts/bump-service-appversions.sh, shared by publish-chart and bump-descriptors so both pin the same set identically. - bump-descriptors now also bumps + stages the backend subchart Chart.yaml files in its (re-triggering) commit. The follow-up push run then rebuilds those backends and publish-chart persists their tags — backends end pinned to an image that exists, connectors keep their bumps. Refs constructorfabric#1583 Signed-off-by: Anton Zelenov <antonz@constructor.tech>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe image build workflow now shares a script for conditionally updating backend service Helm chart ChangesBackend service appVersion bumping
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant BuildWorkflow
participant BumpScript
participant ServiceCharts
participant GitCommit
BuildWorkflow->>BumpScript: pass BUILD_TAG and service flags
BumpScript->>ServiceCharts: update selected appVersion values
BuildWorkflow->>GitCommit: stage Chart.yaml files
GitCommit->>GitCommit: commit descriptor and chart changes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Why #1890 wasn't enough
#1890 added the backend subchart
appVersionbump + persistence, but only insidepublish-chart. On a manual full rebuild (run 30071800363),bump-descriptorscommitted the connector bumps andpublish-chartwas skipped — itsneeds.bump-descriptors.outputs.committed != 'true'gate defers it to the re-triggered push run. So the backend bump never executed.The re-triggered push run (from the connector-descriptor commit) doesn't see any backend source as changed, so backends aren't rebuilt or bumped there either. Net result: connectors bumped, backends not — exactly what was observed.
This affects every run where
bump-descriptorscommits: a manual full rebuild, or any push that changes a backend and a connector together.Fix
appVersionbump intoscripts/bump-service-appversions.sh, shared bypublish-chartandbump-descriptorsso both pin the same set of services identically.bump-descriptorsnow also bumps + stages the backend subchartChart.yamls in its (re-triggering) commit. The follow-up push run then sees those backends as changed, rebuilds them, andpublish-chartpersists their tags (via the git-add from ci: persist authenticator/gateway appVersions + bump on manual rebuild #1890). Backends end pinned to an image that exists; connectors keep their bumps.Flow after this change
Manual full rebuild (
workflow_dispatch, nofrontend_tag):bump-descriptorspatches connector descriptors and bumps all backendappVersions → one commit (no[skip ci]) → re-trigger.Chart.yamlchanged),publish-chartruns and persists every backendappVersion+ publishes the umbrella.Backend-only push (unchanged):
bump-descriptorsis skipped (no connector),publish-chartbumps + persists directly (the #1890 path).Trade-off
On the full-rebuild / combined-push paths the backends build a second time in the re-triggered run. Those events are infrequent (manual re-pin, or a PR touching both a backend and a connector), so the extra build is acceptable in exchange for a single canonical chart publish.
Refs #1583
🤖 Generated with Claude Code
Summary by CodeRabbit