actions/cache — und damit auch actions/setup-go, das darauf aufsetzt —
packt seinen Cache mit zstdmt, wenn zstd vorhanden ist, und fällt sonst auf einkerniges gzip zurück. Am Archivnamen sichtbar: cache.tzst gegen cache.tgz.
Gemessen in l.kirchner/patchmgr, CI-Lauf 1957:
Job
Runner
Archiv
Größe
Nachlauf
make proto
runner-03
cache.tgz
2138 MB
344 s
make all (stable)
runner-01
cache.tgz
3411 MB
553 s
go test -race (stable)
runner-02
cache.tgz
3796 MB
605 s
make all (1.24.x)
runner-gpu
cache.tzst
5292 MB
135 s
make diff-coverage
runner-gpu
cache.tzst
–
162 s
make counter-check
runner-gpu
cache.tzst
–
196 s
go test -race (stable) verbrachte 605 Sekunden mit dem Packen, bei 41 Sekunden eigentlicher Arbeit. Über alle acht Jobs des Laufs: 2312 von
3146 Sekunden im Nachlauf.
Was das nicht löst
Ob dieser Cache überhaupt gebraucht wird. Im Host-Mode mit dauerhaftem Zuhause
überleben GOMODCACHE und GOCACHE ohnehin zwischen den Jobs — patchmgr
schaltet ihn deshalb gerade ab (dortiger PR #58, gemessen 3146 s → 828 s). Aber solange irgendein Repo der Instanz ihn nutzt, soll er nicht einkernig
komprimiert werden, und diese Entscheidung liegt nicht bei einem einzelnen
Repo.
Eine Einschränkung, die dazugehört
Dass zstd auf den drei LXC wirklich fehlt, ist erschlossen, nicht direkt
geprüft — der Beleg ist cache.tgz gegen cache.tzst und die Laufzeit, nicht
ein command -v zstd auf dem Container. Von luki-dev aus besteht kein
SSH-Zugang zu 10.11.20.71/.72/.73 noch zu pve-gamer. Falls zstd doch schon
liegt, ist die Zeile folgenlos: setup_base_apt ruft apt-get install auf, und
das ist auf ein vorhandenes Paket ein No-Op.
Prüfungen
bash -n, shellcheck -S error und tests/test_validation.sh (50 passed,
0 failed) — alle grün.
Ein Paket in `setup_base_apt`, dazu die Begründung.
## Warum
`actions/cache` — und damit auch `actions/setup-go`, das darauf aufsetzt —
packt seinen Cache mit `zstdmt`, wenn `zstd` vorhanden ist, und fällt sonst auf
**einkerniges gzip** zurück. Am Archivnamen sichtbar: `cache.tzst` gegen
`cache.tgz`.
Gemessen in `l.kirchner/patchmgr`, CI-Lauf **1957**:
| Job | Runner | Archiv | Größe | Nachlauf |
|---|---|---|---|---|
| `make proto` | runner-03 | `cache.tgz` | 2138 MB | 344 s |
| `make all (stable)` | runner-01 | `cache.tgz` | 3411 MB | 553 s |
| `go test -race (stable)` | runner-02 | `cache.tgz` | 3796 MB | **605 s** |
| `make all (1.24.x)` | runner-gpu | `cache.tzst` | 5292 MB | 135 s |
| `make diff-coverage` | runner-gpu | `cache.tzst` | – | 162 s |
| `make counter-check` | runner-gpu | `cache.tzst` | – | 196 s |
`go test -race (stable)` verbrachte **605 Sekunden** mit dem Packen, bei
**41 Sekunden** eigentlicher Arbeit. Über alle acht Jobs des Laufs: 2312 von
3146 Sekunden im Nachlauf.
## Was das nicht löst
Ob dieser Cache überhaupt gebraucht wird. Im Host-Mode mit dauerhaftem Zuhause
überleben `GOMODCACHE` und `GOCACHE` ohnehin zwischen den Jobs — `patchmgr`
schaltet ihn deshalb gerade ab (dortiger PR #58, gemessen 3146 s → 828 s).
**Aber solange irgendein Repo der Instanz ihn nutzt, soll er nicht einkernig
komprimiert werden**, und diese Entscheidung liegt nicht bei einem einzelnen
Repo.
## Eine Einschränkung, die dazugehört
**Dass `zstd` auf den drei LXC wirklich fehlt, ist erschlossen, nicht direkt
geprüft** — der Beleg ist `cache.tgz` gegen `cache.tzst` und die Laufzeit, nicht
ein `command -v zstd` auf dem Container. Von luki-dev aus besteht kein
SSH-Zugang zu 10.11.20.71/.72/.73 noch zu `pve-gamer`. Falls `zstd` doch schon
liegt, ist die Zeile folgenlos: `setup_base_apt` ruft `apt-get install` auf, und
das ist auf ein vorhandenes Paket ein No-Op.
## Prüfungen
`bash -n`, `shellcheck -S error` und `tests/test_validation.sh` (50 passed,
0 failed) — alle grün.
actions/cache -- and actions/setup-go, which builds on it -- packs its archive
with zstdmt when zstd is present and falls back to single-threaded gzip when
it is not. The archive name says which happened: cache.tzst against cache.tgz.
Measured in l.kirchner/patchmgr, CI run 1957. The cache is GOMODCACHE plus
GOCACHE and runs to 2-5 GB. runner-gpu has zstd and writes cache.tzst;
runner-01, -02 and -03 write cache.tgz, and go test -race (stable) spent 605
seconds packing it for a job with 41 seconds of work. Across all eight jobs of
that run, 2312 of 3146 seconds went into this step.
This does not settle whether the cache is wanted at all -- in host mode with a
persistent home both directories survive between jobs anyway, and patchmgr is
switching it off for that reason. But as long as any repository on the
instance uses it, it should not be compressed on one core.
zstd is a package for the post step, not for jobs, so it sits with the others
rather than in a workflow: this runner installs nothing at job time, by
design.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ein Paket in
setup_base_apt, dazu die Begründung.Warum
actions/cache— und damit auchactions/setup-go, das darauf aufsetzt —packt seinen Cache mit
zstdmt, wennzstdvorhanden ist, und fällt sonst aufeinkerniges gzip zurück. Am Archivnamen sichtbar:
cache.tzstgegencache.tgz.Gemessen in
l.kirchner/patchmgr, CI-Lauf 1957:make protocache.tgzmake all (stable)cache.tgzgo test -race (stable)cache.tgzmake all (1.24.x)cache.tzstmake diff-coveragecache.tzstmake counter-checkcache.tzstgo test -race (stable)verbrachte 605 Sekunden mit dem Packen, bei41 Sekunden eigentlicher Arbeit. Über alle acht Jobs des Laufs: 2312 von
3146 Sekunden im Nachlauf.
Was das nicht löst
Ob dieser Cache überhaupt gebraucht wird. Im Host-Mode mit dauerhaftem Zuhause
überleben
GOMODCACHEundGOCACHEohnehin zwischen den Jobs —patchmgrschaltet ihn deshalb gerade ab (dortiger PR #58, gemessen 3146 s → 828 s).
Aber solange irgendein Repo der Instanz ihn nutzt, soll er nicht einkernig
komprimiert werden, und diese Entscheidung liegt nicht bei einem einzelnen
Repo.
Eine Einschränkung, die dazugehört
Dass
zstdauf den drei LXC wirklich fehlt, ist erschlossen, nicht direktgeprüft — der Beleg ist
cache.tgzgegencache.tzstund die Laufzeit, nichtein
command -v zstdauf dem Container. Von luki-dev aus besteht keinSSH-Zugang zu 10.11.20.71/.72/.73 noch zu
pve-gamer. Fallszstddoch schonliegt, ist die Zeile folgenlos:
setup_base_aptruftapt-get installauf, unddas ist auf ein vorhandenes Paket ein No-Op.
Prüfungen
bash -n,shellcheck -S errorundtests/test_validation.sh(50 passed,0 failed) — alle grün.