ci(platform): fix release pipeline race condition#1380
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThe PR adds validation to prevent incomplete image availability issues during releases and deployments. The release workflow now verifies that all service manifests (platform, rag, crawler, db, proxy) exist in GHCR before proceeding with a GitHub release. The deployment logic collects all failed image pulls instead of failing immediately, reporting them together. Image pulling now logs manifest-not-found errors with a brief "wait and retry" message rather than full stderr output. Version discovery filters out versions lacking complete manifests across all services. Tests are updated to validate the new logging behavior and manifest completeness checks. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~28 minutes Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
Defer GitHub Release creation until after all container manifests are pushed, eliminating the 15-20 minute window where a release is visible but images are not pullable. Also add manifest verification in the CLI version selector to filter out incomplete versions, and improve error messages when image pulls fail for recent releases. Closes #1349
3520552 to
65ffc7b
Compare
Summary
create-releasejob that confirms all 5 service manifests exist before publishingpullImage()error messaging to detect "not found" / "manifest unknown" errors and suggest waiting for recent releasesdeploy()for a clearer error summaryChanges
.github/workflows/release.ymlcreate-releasenow depends on[prepare, manifest]instead of[prepare]trigger-clinow depends on[prepare, manifest]instead of[prepare, create-release]tools/cli/src/lib/docker/pull-image.tsisManifestNotFound()helper to detect manifest-not-found errorstools/cli/src/lib/actions/deploy.tstools/cli/src/lib/registry/get-available-versions.tshasCompleteManifests()that verifies manifests exist across all 5 servicesTest plan
fetch-reference.tsunrelated)Closes #1349
Summary by CodeRabbit
Bug Fixes
Chores