ci: collapse the checkout and nix-installer pins to one version each - #66
Conversation
Pinning by SHA makes a pin immutable; it does not make it consistent. These workflows had drifted into four different actions/checkout pins (v4, v5, v6.0.3, v7.0.0) and two nix-installer-action pins (v19, v20) across nine files — the same fact recorded in several places, each updated on its own schedule. Consolidate to one version each, repo-wide: actions/checkout -> 3d3c42e (v7.0.1) DeterminateSystems/nix-installer-action -> ef8a148 (v22) v7.0.1 is both the current checkout release and the version most of these workflows were already on (11 of 16 call sites). The only behavioural change in v7 is that fork PRs are no longer checked out under pull_request_target or workflow_run; none of the workflows upgrading here use either trigger. site-deploy.yml is workflow_call, so the caller's event applies — that is the one call site whose consumers this repo cannot enumerate. nix-installer v22 still accepts extra-conf, the only input any of these call sites passes. All 12 workflows parse and every uses: remains SHA-pinned.
|
CI status: 15/16 green. The one red — I ran a control: dispatched
Same step, same conclusion, with What is: I'm not fixing it in this PR. The fix is either a seam claim in whichever repo is newly uncovered, or an Worth noting separately: Generated by Claude Code |
Pinning by SHA makes a pin immutable; it doesn't make it consistent. These workflows had drifted into four different
actions/checkoutpins and twonix-installer-actionpins across nine files — the same fact recorded in several places, each updated on its own schedule.What changed
actions/checkout34e1148(v4) ×3,08c6903(v5) ×2,df4cb1c(v6.0.3) ×1,9c091bb(v7.0.0) ×103d3c42e(v7.0.1) ×16DeterminateSystems/nix-installer-action90bb610(v19) ×2,1d87d45(v20) ×1ef8a148(v22) ×319 lines, 9 files. No other change.
Why these targets
v7.0.1is both the currentcheckoutrelease and the version most of these workflows were already on — 10 of 16 call sites. This moves the remaining six up to meet them rather than introducing a new standard.Risk
checkoutv7.0.0's only behavioural change is that fork PRs are no longer checked out underpull_request_targetorworkflow_run.org-defaults.yml,registry-graph.yml,seam-coverage.yml,site-deploy.yml— none use either trigger.push/pull_request/schedule/workflow_dispatch), so their exposure is zero.site-deploy.ymlisworkflow_call, so the caller's event decides. That's the one call site whose consumers this repo can't enumerate — flagging it rather than claiming it's clear. A caller would have to invoke a production-deploy workflow frompull_request_target/workflow_runto be affected.nix-installerv22 still acceptsextra-conf, the only input any of these call sites passes; the two insite-deploy.ymlpass no inputs at all.Verification
yaml.safe_load).uses:is still pinned to a 40-hex SHA — no tag refs reintroduced.git ls-remoteon the upstream repo. Worth noting:checkout'sv6.0.3tag is annotated, so the correct pin is the dereferenced commitdf4cb1c, not the tag object9f69817— whoever pinned it originally got that right. The newv7.0.1tag is lightweight, so its SHA is the commit directly.Downstream
Consumers tracking
mainpick this up on merge.bounded-systems/sitepinssite-deploy.ymlby SHA, so it needs a separate follow-up bump to this merge commit before it sees the change — that repo is outside this session's scope, so it isn't included here.Generated by Claude Code