Windows unit tests rebuild from scratch: the integration job saves a 15 MB Go cache under their key
Unit Tests (windows) takes 13–19 min against ~3 on linux because every run compiles cold. The Windows go cache on main is 15 MB (setup-go-Windows-x64-go-1.26.8-3b82078d…, created 2026-09-23 23:11), linux's is 1.6 GB. release-1.37 has the same 15 MB Windows entry.
Both Windows jobs use ./.github/actions/setup-go with cache: true on main, so they share one key. Integration Tests (windows) only runs go tool covdata, finishes first and saves its near-empty cache ("Cache saved with the key…" in job 107420875273 at 23:11:04). The unit job finishes at 23:12:45, hits the primary key and skips the save. Cache keys are immutable, so this repeats every time go.sum changes. PRs restore the same key, so they build cold too.
On a fork with no integration run in between, the same unit job saves 1.56 GB and the next run takes 5m10s instead of 17m14s (vshulcz/k3s runs 36271797017 cold, then the warm one after it).
Source: k3s-io/k3s