ci(cd): normalize and align CD pipeline (#90)#91
Conversation
- Remove name: from test and release jobs - Rename deploy job to release - Add id-token: write and attestations: write permissions - Replace git branch -r --contains with git merge-base --is-ancestor - Rename extract_tag step id to version; update all refs - Add linux/arm64 to platforms - Set provenance: mode=max - Add id: push and actions/attest-build-provenance@v4.1.0 - Add --no-merges to changelog git log command - Add empty changelog guard (first release vs re-tag) - Remove changelog.txt write step - Drop Quick Start section from release body Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
WalkthroughUpdated GitHub Actions CD workflow to normalize job structure, support multi-platform Docker builds for both amd64 and arm64 architectures, enable build provenance attestation, standardize changelog generation by excluding merge commits, and update action versions and step references accordingly. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Assessment against linked issues
Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/rust-cd.yml (1)
22-22: Consider consistent version pinning strategy.The checkout action uses major version
@v6while other actions use pinned versions (e.g.,actions/cache@v5.0.4,docker/login-action@v4.1.0). This is acceptable but creates inconsistency. Major version tags auto-update to latest patches, which is convenient but slightly reduces reproducibility.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/rust-cd.yml at line 22, The workflow currently references actions/checkout with a major tag ("uses: actions/checkout@v6") which is inconsistent with other actions pinned to exact versions; update the checkout usage to a pinned release (e.g., replace "actions/checkout@v6" with a specific patch tag like "actions/checkout@v6.1.0" or whichever exact release you want) so it matches the repo's explicit-version strategy and improves reproducibility; ensure the modified string appears where "uses: actions/checkout@v6" is defined.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.github/workflows/rust-cd.yml:
- Line 22: The workflow currently references actions/checkout with a major tag
("uses: actions/checkout@v6") which is inconsistent with other actions pinned to
exact versions; update the checkout usage to a pinned release (e.g., replace
"actions/checkout@v6" with a specific patch tag like "actions/checkout@v6.1.0"
or whichever exact release you want) so it matches the repo's explicit-version
strategy and improves reproducibility; ensure the modified string appears where
"uses: actions/checkout@v6" is defined.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 80f1346c-8df5-4e96-8516-329a14af789e
📒 Files selected for processing (1)
.github/workflows/rust-cd.yml
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #91 +/- ##
=======================================
Coverage 84.33% 84.33%
=======================================
Files 6 6
Lines 166 166
=======================================
Hits 140 140
Misses 26 26 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
deployjob torelease; dropname:from both jobsid-token: writeandattestations: writepermissions toreleasegit branch -r --containswithgit merge-base --is-ancestorfor tag reachabilityextract_tag→versionand update all referenceslinux/arm64to build platforms; setprovenance: mode=maxid: pushto Docker build step and attest withactions/attest-build-provenance@v4.1.0--no-mergesto changeloggit logcommandchangelog.txtwrite; drop Quick Start section from release bodyTest plan
actions/attest-build-provenance@v4.1.0step is valid on next tagged releaseCloses #90
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Chores