ci: guard the Linux .deb archive copy against an empty apt cache

Merged
TH
6d ago
+5-1

Summary

Follow-up to the non-blocking review notes on #3919. One file: .github/workflows/linux.yml. No linked issue: #3918 was auto-linked there but is an unrelated iPad fix, and the timeout reports were never filed.

The final cp /var/cache/apt/archives/*.deb ~/apt-archives/ runs under set -euo pipefail. An unmatched glob stays literal, so the cp fails the step when the archives dir holds no .deb — as it would when a future runner image already ships every package. compgen -G now skips the copy there; a real cp failure still fails the step.

Cache question: kept. Would --no-install-recommends plus the bound alone be simpler? The first push of #3919 was exactly that, and it failed after 3 bounded attempts while the mirror was slow: an 11 MB package could not download inside the deadline. The cache is why most runs never ask the mirror (13–14 s on a hit). A single actions/cache would save a partial archive after a failed install, so the restore/save pair stays unchanged.

Validation

Base a9fc9a1, tested SHA e40b6da.

  • pnpm check:affected --run --head e40b6da09c: exit 0, exactCommit: true.
  • Guard exercised under bash -eo pipefail in a scratch dir: unguarded cp *.deb on an empty dir exits 1; the guarded form skips and still copies when files exist.
  • CI: Linux Smoke Tests at this head, install step green on a cache miss and on a rerun cache hit.

Risk: none beyond #3919; the guard only removes a failure mode.

šŸ¤– Generated with Claude Code