CI hygiene: bring pre-existing workflow action versions up to date - #84
Merged
Conversation
v4 targets Node 20, which the runner already force-upgrades to Node 24 with a deprecation warning on every run. The two image workflows were moved to v7 when they were written; build.yml and the two Claude workflows were left behind. None of the three uses pull_request_target or workflow_run, so v7's fork-checkout block does not apply.
Kept separate from the checkout bump because v0.10.0 flips the post-cleanup default to false (prefix-dev/setup-pixi#272), so a cache or build-time regression is attributable to one commit. The default flip is inert here. post-cleanup only deletes .pixi, the pixi binary and the rattler dirs at job end; both versions save the cache from the main step (main.ts), never the post step, so cleanup cannot race it, and these runners are ephemeral GitHub-hosted VMs that are destroyed anyway. Left at the new default rather than pinned back to true. Two real changes do land: the cache is now split into project and global entries, and the project key hashes the pixi binary as well as the lockfile. So the first build after this is a guaranteed cache miss, and subsequent pixi releases invalidate the cache (this repo does not pin a pixi version) -- correct, since a conda env built by a different pixi should not be reused.
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.
CI hygiene: bring pre-existing workflow action versions up to date
Branch: ci-action-versions (2 commits, 4 changed lines, workflows only)
What changed
actions/checkoutv4 -> v7 inbuild.yml,claude.yml,claude-code-review.yml(the two image workflows were already on v7 from task 173).
prefix-dev/setup-pixiv0.9.0 -> v0.10.0 inbuild.yml.Deliberately two commits so a cache or build-time regression is attributable to
one bump. Major-tag pinning style kept (
v7, not a SHA), matching the repo.Re-verified against the releases API on 2026-07-31
actions/checkoutlatest = v7.0.1 (major tagv7);prefix-dev/setup-pixilatest = v0.10.0. The task's table was still accurate.
The setup-pixi breaking change is inert here — settled from source, not assumed
v0.10.0's only breaking change is the post-cleanup default flipping to false
(confirmed in
src/options.ts:inputs.postCleanup ?? falseat v0.10.0 vs?? trueat v0.9.0).The task flagged the pixi cache as the plausible failure mode. It is not
reachable: in BOTH versions the cache is saved from the main step
(
src/main.tscallssaveProjectCache/saveCache), andsrc/post.tsonlyever deletes
.pixi, the pixi binary and the rattler dirs. Post-cleanup cannotrace or truncate the cache save in either version. Beyond that the runners are
ephemeral GitHub-hosted VMs, so skipping cleanup deletes nothing that survives
the job. Left at the new default rather than pinned back to
post-cleanup: true.Two genuine v0.10.0 changes do land, and both should be expected rather than
read as regressions:
new key formats, so the first build after this merges is a guaranteed
one-time cache miss.
build.ymlpins no pixi version, so future pixi releases will invalidate thecache. That is correct — a conda env built by a different pixi should not be
reused — but it means slightly more frequent cold builds.
The three-major checkout jump is safe for how this repo uses it
Node.js 24" warning that every current run logs. v7's
action.ymldeclaresusing: node24.checkout here — both submodules are public HTTPS third-party repos
(Slamtec/sllidar_ros2, PRBonn/kinematic-icp), so no credential is needed.
pull_request_target/workflow_run): none ofthe three workflows uses those triggers. They use
push,pull_request,issue_comment,issues,pull_request_review,pull_request_review_comment.submodulesis still a declared input in v7'saction.yml, sosubmodules: recursiveinbuild.ymlis unaffected.Verified
check yaml) passedon both commits.
claude-code-action@v1and all four
docker/*actions in the image workflows are already on theirlatest majors. Nothing else to bump — no change made, scope kept to the task.
Baseline captured for the after-comparison
From the last green
build.ymlrun on main (30628718063), per-step:Recent whole-run wall clock is 5.3-5.8 min. After the merge, expect: the
first run's setup-pixi step to be much longer than 21/29s (the one-time key
change above), subsequent runs to return to ~21/29s if the cache still hits,
and "Post setup-pixi" to drop from 3s to ~0s now that cleanup is skipped.
Outstanding
CI has not run — that needs a push, which I did not do.
build.ymltriggers onpull_request, so opening the PR exercises both bumps onubuntu-latestandubuntu-24.04-arm, including submodule checkout. The remaining check is thatthe second run on the branch shows setup-pixi back at ~21/29s, confirming the
cache still hits. The two Claude workflows are only exercised when triggered, so
their checkout bump is confirmed by an actual bot run on the PR rather than by CI.