fix(shellcheck): use preinstalled shellcheck with guarded apt fallback - #54
Merged
Conversation
ubuntu-latest ships shellcheck preinstalled; the unconditional apt-get install was the likely cause of a silent multi-minute stall when a runner's apt mirror hung, with zero log output making it look like a dead job. Skip the install when shellcheck is already on PATH, and add a job-level timeout-minutes backstop so a future wedge fails fast instead of holding required checks (and auto-merge) hostage for the 360-minute default. Co-Authored-By: Claude <claude-sonnet-5@noreply.anthropic.com>
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.
Closes #53
Hardens the
shellcheck.ymlreusable workflow against silent stalls caused by a hungapt-get update. On 2026-08-19 the reusable wedged three times in a row onlentago/.githubPRs (#163, #165): theRun ShellCheckstep satin_progressfor 20+ minutes with zero log output while every other check on the same PRs completed normally — consistent with a stalled apt mirror hanging silently before any output is emitted.ubuntu-latestrunner images ship ShellCheck preinstalled, so the unconditionalapt-get installwas unnecessary in the common case. The step now checks for a preinstalledshellcheckbinary and only falls back to apt if it's missing (e.g. a future runner image change). Atimeout-minutes: 5backstop is also added at the job level so a future wedge fails fast instead of holding required checks — and auto-merge — hostage for the 360-minute default.No caller-facing inputs changed, so this is a patch-level fix per RELEASING.md's semver policy. This repo's internal self-references to
render-claude-summaryare unaffected —shellcheck.ymldoesn't call that composite action — so no self-reference bump is needed ahead of tagging.Test plan
shellcheck.ymlcaller at@agent/harden-shellcheck-reusablefor one PR and confirm the run logs show the preinstalled ShellCheck version with noapt-getinvocation.main, cut patch tagv1.2.2per RELEASING.md.