Skip to content

fix(shellcheck): use preinstalled shellcheck with guarded apt fallback - #54

Merged
cpitzi merged 1 commit into
mainfrom
agent/harden-shellcheck-reusable
Aug 19, 2026
Merged

fix(shellcheck): use preinstalled shellcheck with guarded apt fallback#54
cpitzi merged 1 commit into
mainfrom
agent/harden-shellcheck-reusable

Conversation

@lentago-claude-runner

Copy link
Copy Markdown
Contributor

Closes #53

Hardens the shellcheck.yml reusable workflow against silent stalls caused by a hung apt-get update. On 2026-08-19 the reusable wedged three times in a row on lentago/.github PRs (#163, #165): the Run ShellCheck step sat in_progress for 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-latest runner images ship ShellCheck preinstalled, so the unconditional apt-get install was unnecessary in the common case. The step now checks for a preinstalled shellcheck binary and only falls back to apt if it's missing (e.g. a future runner image change). A timeout-minutes: 5 backstop 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-summary are unaffected — shellcheck.yml doesn't call that composite action — so no self-reference bump is needed ahead of tagging.

Test plan

  • Point a caller repo's shellcheck.yml caller at @agent/harden-shellcheck-reusable for one PR and confirm the run logs show the preinstalled ShellCheck version with no apt-get invocation.
  • After merge to main, cut patch tag v1.2.2 per RELEASING.md.

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>
@cpitzi
cpitzi merged commit 043005d into main Aug 19, 2026
1 check passed
@cpitzi
cpitzi deleted the agent/harden-shellcheck-reusable branch August 19, 2026 17:22
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.

shellcheck reusable: apt-get stall wedges required checks — use preinstalled shellcheck + job timeout

1 participant