Skip to content

ci: bound the apt steps so a slow mirror cannot hang a run - #1407

Merged
rmyndharis merged 2 commits into
mainfrom
fix/bound-the-apt-steps
Aug 19, 2026
Merged

ci: bound the apt steps so a slow mirror cannot hang a run#1407
rmyndharis merged 2 commits into
mainfrom
fix/bound-the-apt-steps

Conversation

@rmyndharis

Copy link
Copy Markdown
Owner

Install sqlite3 in the scripts-smoke job held two consecutive main runs open for over an hour each while every other job had already gone green, so neither run ever reported and main went without a signal. The step had no timeout, so a stalled apt-get would have burned the six-hour job default before failing.

What changed

  • Both apt steps in ci.yml and release.yml carry timeout-minutes: 5 and skip the install when the runner image already ships the tool, which is the common case.
  • The shellcheck step runs its own apt-get update rather than inheriting one from the step above, which no longer always runs.
  • release.yml carries the same job and had the same two unbounded steps, so a release cut could have stalled the same way.

Impact

CI only. A failing install still fails the step: the short-circuit covers the tool already being present, nothing else.

Verification

  • The three branches of the new command were exercised directly: tool present short-circuits at exit 0 without calling apt, tool absent takes the install branch, and tool absent with a failing install exits 1 rather than being swallowed.
  • actionlint at the pinned version CI uses, both workflow files parse, job counts unchanged (9 and 14), and the docs/09 §9.6 job-table gate passes.

`Install sqlite3` held the scripts-smoke job open for over an hour on two
consecutive main runs while every other job had already gone green, so
neither run ever reported and main went without a signal. The step had no
timeout, so a stalled apt-get would have burned the six-hour job default
before failing.

Both apt steps now carry a five-minute timeout and skip the install when
the runner image already ships the tool, which is the common case. The
shellcheck step runs its own apt-get update rather than inheriting one
from the step above, which no longer always runs. A failing install still
fails the step: the short-circuit only covers the tool already being
present.

release.yml carries the same job and had the same two unbounded steps, so
it is fixed alongside; a release cut could have stalled the same way.
@rmyndharis
rmyndharis merged commit daa7b93 into main Aug 19, 2026
9 checks passed
@rmyndharis
rmyndharis deleted the fix/bound-the-apt-steps branch August 19, 2026 17:48
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