ci: bound and shrink the Linux desktop dependency install

Merged
TH
8d ago
+59-17

Summary

Fixes the recurring "Install Linux desktop dependencies" timeout in Linux Smoke Tests. One file: .github/workflows/linux.yml.

Cause. On 2026-10-22, 10 of 73 executed runs hit the 6-minute limit and 11 more took 135–337 s. Normal is 20–68 s. In run 39858436592 (#3918) the Azure mirror stalled a 2 MB poppler-data download, then crawled. My first push reproduced the stall on the same package. A later probe saw 69 MB/s for the same file. So it is a cold-cache miss on a slow upstream, and re-runs pass once the mirror is warm. Without --no-install-recommends the step also fetched 82 MB / 116 packages.

Fix.

  • --no-install-recommends: 44 new packages, 30.5 MB. The package list is unchanged.
  • Cache the downloaded .debs with actions/cache.
  • Download in a separate --download-only phase: 3 attempts, each under a deadline. dpkg never runs under a deadline.
  • timeout-minutes: 6 stays.

Validation

pnpm check:affected --run --head 7d1b2d0d…: exit 0.

Step durationResult
Before (2026-10-22)10 × 372 s timeout; 11 × 135–337 s
After, cache miss36 s
After, cache hit13 s, 14 s

Earlier heads of this branch also gave 16, 21, 14 s and 14, 13, 13 s. The first push failed with a 60 s deadline during a bad mirror period. That is why the cache exists.

Risk: apt-get update still uses the mirror (3 × 30 s bound).

🤖 Generated with Claude Code