ci: pin Go to exact 1.26.8 so release builds are reproducible - #139
Conversation
#135 loosened go-version from '1.26.5' to '1.26' so setup-go would track the latest 1.26.x and pick up stdlib security releases automatically. That trades reproducibility for convenience: a release rebuilt later may compile with a different toolchain than the one that shipped. Pin the exact patch in all three places (ci.yml twice, desktop-release.yml once). 1.26.8 is the current 1.26.x, two patches past the 1.26.6 that #135's control run resolved, so this is not a rollback to a vulnerable toolchain. The govulncheck hard gate is what stops an exact pin from rotting: it runs on the pinned toolchain, so a reachable stdlib advisory fails CI on the next PR and prompts a bump. SECURITY-NOTES.md now describes that policy instead of the floating one.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughCI and desktop release workflows now pin Go 1.26.8. Security notes explain the manual update requirement and identify all three workflow locations. ChangesGo toolchain pinning
Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Other Merge Risk: ⚪ Minimal · up to The change consistently pins Go 1.26.8 across CI and release workflows without introducing an identified merge-blocking risk. 🚥 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 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #139 +/- ##
==========================================
+ Coverage 78.50% 78.56% +0.05%
==========================================
Files 18 18
Lines 3797 3797
==========================================
+ Hits 2981 2983 +2
+ Misses 587 586 -1
+ Partials 229 228 -1 🚀 New features to boost your workflow:
|
#135 changed
go-versionfrom'1.26.5'to'1.26'in both workflows sosetup-gotracks the latest 1.26.x and stdlib security releases arrive without a workflow edit. The cost is reproducibility: a release rebuilt later can compile with a different toolchain than the one that shipped.This pins the exact patch again, in all three places (
ci.ymltwice,desktop-release.ymlonce).Why 1.26.8 and not 1.26.5 or 1.26.6
GO-2026-6218,GO-2026-6090,GO-2026-6089,GO-2026-5026,GO-2026-5972). Pinning back to it would ship those again and turn the govulncheck gate red.What keeps an exact pin from rotting
The
govulncheckhard gate runs on the pinned toolchain. A reachable stdlib advisory fails CI on the next PR, which is the prompt to bump the pin.docs/SECURITY-NOTES.mdnow describes that policy instead of the floating one, so the doc and the workflows say the same thing.Scope
Workflow and doc only. No Go code,
go.modorgo.sumchange, soauto-tag.yml'spathsfilter will not cut a release from this merge.Verification
The
govulncheckjob on this PR is the evidence: it runs against 1.26.8 as a hard gate. Green means 0 reachable vulnerabilities on the exact toolchain that will build releases.Summary by CodeRabbit