Skip to content

fix: ci cache-key, drift-guard, and container frontend correctness#26

Merged
lczyk merged 6 commits into
mainfrom
feat/misc
Jul 20, 2026
Merged

fix: ci cache-key, drift-guard, and container frontend correctness#26
lczyk merged 6 commits into
mainfrom
feat/misc

Conversation

@lczyk

@lczyk lczyk commented Jul 17, 2026

Copy link
Copy Markdown
Owner

grab-bag of ci / build hygiene fixes that were quietly wrong. each is a distinct root cause, so splitting them out below.

binaries cache key was hashing the wrong inputs

the cache key referenced hack/build_binaries.sh, but hashFiles silently drops any path that doesn't match -- so after churn around the driver filename the key was effectively hashing makefile alone. edits to the build driver no longer busted the cache. also added patches/chisel/*.patch so the key mirrors hack/hash_inputs.sh's binaries input set -- w/out it a patch edit hits a stale cache and ships stale chisel-hacked binaries.

key now: hashFiles('hack/build_binaries.sh', 'patches/chisel/*.patch', 'makefile').

DEBIAN_FRONTEND=noninteractice typo

the container env var was noninteractice (invalid). debconf ignores an unknown frontend and falls back, so apt inside the test container never got the intended non-interactive frontend. fixed in the allocate scripts, tests/spread.yaml, and the hand-maintained demo/spread.yaml; dropped the now-dead #spellchecker: ignore directives; regenerated inlined/*.yaml.

inlined yaml drift guard

inlined/*.yaml is generated from templates/ + scripts/ but also committed (repo-tree consumers grab it directly). nothing failed when the committed copy went stale -- ci and release both regenerate before use. added a check-inlined job that regenerates and diffs, failing on drift. ubuntu runners ship ruby so no extra setup.

base-refresh masked make failures

the drift step piped make update-base into tee. github's default step shell runs -e but not pipefail, so a failing make was masked by tee's success -- the job went green having resolved no digests. added set -eo pipefail.

lczyk added 5 commits July 17, 2026 10:46
The ci binaries cache key referenced hack/build_binaries.sh, renamed to
.rb in the ruby rewrite. hashFiles silently drops the non-matching path,
so the key hashed makefile alone -- edits to the build driver no longer
busted the cache. Also add patches/chisel/*.patch so the key mirrors
hack/hash_inputs.sh's binaries input set; without it a patch edit would
hit a stale cache and ship stale chisel-hacked binaries.
inlined/*.yaml is generated from templates/ + scripts/ but also committed,
so repo-tree consumers grab it directly. Nothing failed when the committed
copy went stale -- ci and release both regenerate before use. Add a job
that regenerates and diffs, failing if the committed inlined drifts from
its sources.
The container env var was set to DEBIAN_FRONTEND=noninteractice (invalid
value). debconf ignores an unknown frontend and falls back, so apt run
inside the test container never got the intended non-interactive frontend.
Correct the spelling in the allocate scripts, tests/spread.yaml, and the
hand-maintained demo/spread.yaml; drop the now-dead spellchecker ignore
directives; regenerate inlined/*.yaml.
The drift step piped make update-base into tee. GitHub's default step
shell runs with -e but not pipefail, so a failing make was masked by tee's
success -- the job would go green having resolved no digests. Add
set -eo pipefail so the pipeline fails on make error.
89c22e2 changed the key to hash hack/build_binaries.rb, but that file only
exists on the ruby-rewrite branch -- on this branch the build driver is
hack/build_binaries.sh. hashFiles silently drops the non-existent .rb, so
the key was hashing patches + makefile but not the driver itself. Point it
back at .sh; keep the patches/chisel/*.patch addition (the real gap here).
templates fixed the DEBIAN_FRONTEND=noninteractive typo but the
committed inlined/*.yaml were not regenerated, failing check-inlined.
@lczyk lczyk changed the title feat: miscalenous fix: ci cache-key, drift-guard, and container frontend correctness Jul 20, 2026
@lczyk
lczyk merged commit b9200d1 into main Jul 20, 2026
6 checks passed
@lczyk
lczyk deleted the feat/misc branch July 20, 2026 07:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant