ci: build the debian base when the published one is behind the checkout - #468
Merged
Merged
Conversation
nozaq
marked this pull request as ready for review
September 12, 2026 06:51
build-checks.yml built each image on the published debian base unless the change set selected debian itself. A base change merged on main but not yet released is not in that change set, so a pull request touching only a language image was checked on a base the next release does not build it on: the release rebuilds debian for the pending change and every image on top of it. The setup job now also diffs debian/ against the latest release tag with the release rules of changed-images.sh, and builds the base from the checkout whenever those rules find a change, or when no release tag exists. The published base is used only while it matches the checkout. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
nozaq
force-pushed
the
claude/debian-build-cache-sync-ay1dut
branch
from
September 12, 2026 06:56
ad9dbd5 to
1aeac31
Compare
Member
Author
|
Build Checks on Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Since #462,
build-checks.ymlbuilds each image on the debian base built from the checkout only when the change set selectsdebianitself, and on the publishedghcr.io/bare-devcontainer/debianbase otherwise.A base change merged on
mainbut not yet released (right now: #466, merged afterv20260912) is not in the change set of a pull request that touches only a language image. That pull request was therefore checked on the published base, while the next release rebuilds debian for the pending change and builds every image on top of it. The checks and the release disagreed on the base for up to a day after every debian change.Change
setupjob gains a step that diffsdebian/between the latest release tag andHEAD, applying the release rules ofscripts/changed-images.sh(Markdown and smoke tests are ignored, as the release ignores them). The published base is treated as matching the checkout only when those rules find no change; with no release tag, it is never assumed to match.check-basenow runs whendebianis selected or the published base does not match the checkout, socheck-imagebuilds on the base the release will build on. Nothing else incheck-base/check-imagechanges: the artifact hand-off, registry mirror and cache conditions already key onneeds.check-base.result.AGENTS.mddescribes the new condition.The step logs the
debian/files that differ from the tag, so a base build triggered this way can be verified from the log.Verification
Ran the step's shell logic locally against three checkouts:
HEADorigin/main(#466 pending release)debian/Dockerfile,debian/assets/.bashrcdiffer → base builtv20260912450fc25(main before #466)🤖 Generated with Claude Code
Generated by Claude Code