Skip to content

fix(ci): refresh the stale ghcommon script pin across reusable workflows#333

Merged
jdfalk merged 1 commit into
mainfrom
fix/stale-ghcommon-script-pin
Jul 20, 2026
Merged

fix(ci): refresh the stale ghcommon script pin across reusable workflows#333
jdfalk merged 1 commit into
mainfrom
fix/stale-ghcommon-script-pin

Conversation

@jdfalk

@jdfalk jdfalk commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Every reusable workflow that checks out this repo's own
.github/workflows/scripts falls back to a hardcoded SHA when the calling repo
has no .github/ghcommon-ref.txt:

ref="e04c222a0366d5801d3b02bb76519f19ba1fa440"

That commit is from 2026-03-28. Callers consume the workflows at @main, so
main's workflow logic has been invoking helper subcommands that the four-month-
old pinned script doesn't define:

##[error]Unknown command: rust-build

The rust-* subcommands were added in 767acd4 on 2026-05-27 — two months
after the pin. So Rust CI fails outright in every repo without the ref file.

Surfaced by falkcorp/cockroach-rollout-agent, whose Rust CI activated for the
first time during the TODO fan-out (its Cargo.lock changed). Verified locally
that the repo itself is fine — cargo clippy --all-targets -- -D warnings,
cargo build --release and cargo test all pass; the failure was purely this
version skew.

Change

All 11 occurrences across 6 workflows now point at current main:

Workflow Pins
reusable-ci.yml 5
reusable-release.yml 3
reusable-advanced-cache.yml 1
reusable-maintenance.yml 1
reusable-security.yml 1
commit-override-handler.yml 1

The primary fallback now carries a comment explaining that it must be kept in
step with the workflows shipped beside it
— a stale pin here means main
calls into scripts that predate it.

Worth considering separately: this fallback is inherently a footgun, since the
workflow and the scripts live in the same repo but are versioned independently.
Deriving the ref from the running workflow would remove the failure mode
entirely.

Testing

actionlint clean on all six changed workflows — no structural errors, and the
only output is pre-existing shellcheck warnings in untouched run: blocks.

🤖 Generated with Claude Code

https://claude.ai/code/session_013vU67T2LJDCbYTBs9ZFAf2

Every reusable workflow that checks out this repo's own workflow scripts
fell back to a hardcoded SHA when the calling repo had no
.github/ghcommon-ref.txt. That SHA - e04c222 - is from 2026-03-28.

Callers use the workflows at @main, so main's workflow logic was calling
helper subcommands that the four-month-old pinned script does not define.
Rust CI failed outright in every repo without the ref file:

    ##[error]Unknown command: rust-build

The rust-* subcommands were added in 767acd4 on 2026-05-27, two months
after the pinned commit. Surfaced by falkcorp/cockroach-rollout-agent,
whose Rust CI activated for the first time during the TODO fan-out.

Updates all 11 occurrences across 6 workflows to current main, and adds a
comment on the primary fallback noting it must stay in step with the
workflows shipped beside it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013vU67T2LJDCbYTBs9ZFAf2
@jdfalk
jdfalk merged commit 630c2a8 into main Jul 20, 2026
36 of 42 checks passed
@jdfalk
jdfalk deleted the fix/stale-ghcommon-script-pin branch July 20, 2026 15:40
jdfalk added a commit to falkcorp/cockroach-rollout-agent that referenced this pull request Jul 20, 2026
Picks up falkcorp/github-common#333 (stale ghcommon script pin), which
restores the rust-build subcommand the Rust CI job invokes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013vU67T2LJDCbYTBs9ZFAf2
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