Skip to content

fix(ci): refresh apt lists and re-key the apt cache that was saved empty - #103

Merged
0xMMA merged 3 commits into
mainfrom
fix/ci-apt-cache
Oct 5, 2026
Merged

0xMMA merged 3 commits into
mainfrom
fix/ci-apt-cache

Conversation

@0xMMA

@0xMMA 0xMMA commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

main has been red since 2026-10-04 17:38. awalsh128/cache-apt-pkgs-action saved an empty cache under key version 1.0 (cache 8487341532). Two dependency debs returned 404, apt-fast exited 0 anyway, and the action cached what it had installed, which was nothing. Every Linux job since then restores that cache, skips the install, and fails at the first cgo package. This hits every push run on main, #94, #95 and the Dependabot PRs. build-windows is skipped too, so there are no Windows artifacts.

Change (build-linux.yml, release.yml)

  • sudo apt-get update -o Acquire::Retries=3 before the apt-cache steps. The action never refreshes lists on GitHub runners (only under act); the step now carries a comment saying so.
  • Cache version 1.0 → "1.1". This is what actually fixes main: the old key keeps restoring the empty cache. Versions are quoted, so a later 1.10 can't collapse to 1.1.
  • pkg-config --exists gtk+-3.0 webkit2gtk-4.1 right after the GTK steps. It fails at the cause. It can't prevent a broken save, because the save happens inside the action, so the comment says how to recover: bump version or gh cache delete <id>.
  • Windows binary and installer artifacts are kept for 14 days instead of 3. They are what gets smoke-tested on a real machine, and fix: batch of small UI bugs (#21 #22 #24 #26 #28 #29) #94's had expired by then. The repo is public, so storage costs nothing.

After merging — reruns will NOT help

A rerun uses the old commit's workflow, which means version 1.0 and the empty cache again. Instead:

  1. Merge main into fix: batch of small UI bugs (#21 #22 #24 #26 #28 #29) #94 and chore(deps): Wails v3 beta.25 — needs Windows smoke test before merge #95. chore(deps): Wails v3 beta.25 — needs Windows smoke test before merge #95 needs a hand merge: git's automatic part doubles the "Check GTK3 headers" steps.
  2. Dependabot PRs chore(deps): bump the npm-minor group across 1 directory with 9 updates #100–chore(deps): bump the go-minor group across 1 directory with 2 updates #102: comment @dependabot rebase.
  3. Optionally delete the old cache: gh cache delete 8487341532. main no longer uses that key.
  4. A tag cut from a commit before this merge would still use 1.0. Cut the next release after it.

Review

Opus review with review-pr fork. The fix was verified against the action's source at the pinned SHA and the logs of the run that saved the empty cache; CI is green on this PR. Comment, quoting and redundancy findings are addressed. Open, for Michael: on every cache miss the action downloads apt-fast from an unpinned upstream master and runs it with sudo, release jobs included. Pinning the action's SHA doesn't pin that script. Whether to keep the action at all is a separate decision.

0xMMA added 3 commits October 4, 2026 20:17
cache-apt-pkgs-action caches whatever it installed, including nothing. On 2026-10-04 a run whose apt lists were stale got 404s and saved an empty cache under version 1.0; every Linux job since restores it and skips the install, so main is red. Re-key to 1.1, refresh the lists first, and check the GTK3 headers right after the step so the next empty cache fails at its cause.
Review of #103: the refresh step gets a reason so it is not removed as redundant, plus apt retries; the second refresh before NSIS (same job) is gone; cache versions are quoted so a later 1.10 cannot collapse to 1.1; the header check says how to recover from a cache saved empty.
@0xMMA
0xMMA merged commit e5a46f3 into main Oct 5, 2026
4 checks passed
0xMMA added a commit that referenced this pull request Oct 8, 2026
Main's apt steps (#103) win in both workflows; the branch's own copies of
the refresh and GTK3 checks are dropped so each job has one of each. The
Wails parts are re-applied on top: beta.25 wails3 with -tags gtk3, gtk3 on
Linux test/vet/build, the readelf GTK3 link check, and bindings drift via
git status. go.mod/go.sum and the npm lock start from main's and bump only
Wails / @wailsio/runtime. Bindings regenerated with beta.25: identical to
main's, SetActiveProvider included.
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