Skip to content

refactor: converge artifact action versions and add pin consistency lint - #401

Merged
joshua-temple merged 1 commit into
mainfrom
refactor/converge-artifact-versions
Jun 27, 2026
Merged

joshua-temple merged 1 commit into
mainfrom
refactor/converge-artifact-versions

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

What

Converges every upload/download-artifact reference to a single version and adds a CI consistency lint that asserts all governed action pins match the manifest.

Why

The same action ran at multiple versions across the repo (download-artifact at v4/v4.3.0/v5.0.0, upload-artifact at v4/v4.6.2/v7.0.1) because dependabot bumped files piecemeal while the generator table lagged. This converges them and makes divergence a CI failure going forward.

Changes

  • Manifest: download-artifact -> v8.0.1 (3e5f45b...), upload-artifact -> v7.0.1 (043fb46...).
  • Laggards brought up: pr.yaml upload v4, register-run composite upload v4.6.2 -> v7.0.1; corrected a stale github-script comment (# v7 -> # v7.1.0, SHA unchanged).
  • New workflow_consistency_test.go: scans every .github/workflows/* and composite action.yml, asserts each governed uses:@sha # version equals the manifest, failing once with a file:line want got table (anchored on the module root, not cwd). Proven: flipping one SHA fails it, reverting passes.

Safety

Final state: download-artifact 3x all v8.0.1, upload-artifact 6x all v7.0.1, every governed action single-valued and manifest-matching; the 4 emit:false SHAs verified against the real workflows. Regeneration byte-identical (cascade's own generated workflows do not emit artifact actions, so drift stays clean). go build/test (2021 pass), golangci-lint, actionlint clean. act does not run the artifact actions, so the Node-24 versions are harness-safe (act pin #399 already landed).

Closes the artifact-version drift; second step in the action-pins single-source-of-truth sequence.

Settle download-artifact on v8.0.1 and upload-artifact on v7.0.1 across
every workflow and composite action so each action carries exactly one
pinned version. Bring the two upload-artifact laggards (pr.yaml and the
register-run composite) up to v7.0.1 and align the download/upload pins in
internal/generate/action_pins.yaml to match.

Add a consistency lint that scans every .github workflow and composite
action.yml, asserts each governed uses: ref and version comment equals the
manifest entry, and fails once with a file:line want/got table. A negative
control feeds it a flipped SHA to keep the detector honest.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple enabled auto-merge (squash) June 27, 2026 19:19
@joshua-temple
joshua-temple merged commit f4087c0 into main Jun 27, 2026
12 of 16 checks passed
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