test.yml: install via install.sh, collapse cache_gomod to one dir download
The module cache task was the last if/fi block in this manifest: download
a tarball, untar it, or else go mod download, tar it up, upload. With
v0.2.0's `dir download --exec` it is a single invocation that restores
the tree or builds it and seeds the cache — and the manifest that ships
with the tool now demonstrates the shape it is selling.
Key moves from gomod/<sha>.tar.gz (a tar.gz of ~/go containing pkg/mod)
to gomod/<sha>.tar.zst (cacher's own dir archive of ~/go/pkg/mod), so
the old objects are simply left behind rather than misread.
The bootstrap task loses its mkdir/curl/chmod trio to install.sh, which
additionally verifies the download against checksums.txt.
test.yml: collapse cache_garage_image to single 'cacher docker download --pull'
Now that v0.1.1 (with --pull) is the published binary on pages, the
if/else with exists/download/upload can fold into the one-line form.
SilenceUsage in v0.1.1 also removes the cobra-dump-on-miss noise that
required the stderr swallow on the previous `exists` check.
test.yml: use published cacher binary instead of building from source
Walking back e1b71b2. Building cacher from source dropped the
go-tarball caching (chicken-and-egg). Bootstrapping from the published
v0.1.0 binary instead lets all three caches (go tarball, gomod, garage
image) use cacher.
Cost: cache_garage_image stays on the if/else cacher docker
{exists,download,upload} pattern instead of the single `cacher docker
download --pull` introduced on master, because v0.1.0 doesn't have
--pull yet. Comment notes the switch as a follow-up after the next
release.
test.yml: build cacher from source, cache go.mod, use 'docker download --pull'
* install_cacher now goes via 'go build' from the cloned source
instead of curl-from-pages. The whole point of test.yml is to
exercise the binary this branch produces; bootstrapping from the
previously-published release defeats that. Loses go-tarball caching
as a side effect (chicken-and-egg: need go before cacher).
* cache_gomod task between cacher_init and test: tar ~/go/pkg/mod
keyed by sha256(go.sum). Skips proxy.golang.org on subsequent runs;
go.sum change invalidates automatically. Biggest cache win — the
docker SDK transitives pulled in by testcontainers are heavy.
* cache_garage_image collapsed to a single 'cacher docker download
--pull' call. Key prefix changed garage/ → docker/ (cache format
is now zstd-compressed via cacher docker, incompatible with the
raw-tar entry seeded by job 153).
* Dropped the redundant smoke 'build' task — install_cacher already
exercises 'go build' from the same sources.
merge .builds/{unit,e2e}.yml into test.yml; cache go + garage image
Single job runs unit tests → smoke build → e2e (against a real Garage
container via testcontainers-go). Unit failure short-circuits before
paying the ~150 MB Garage image pull.
Caches via dogfooded cacher:
* Go tarball — `cacher download --url` fallback, same pattern as
publish.yml.
* Garage docker image — `cacher download` of the tar; on miss does
docker pull + save + upload to seed.
Also silences testcontainers' default logger in the garage testutil
(pull progress, container IDs, port mappings); test output now only
shows what the tests print themselves. `-v` dropped from the e2e
`go test` since per-test progress is no longer drowned out and not
worth printing on green runs.
`TESTCONTAINERS_RYUK_DISABLED=true` — VM is torn down at job end,
reaper container is just startup noise.
Verified end-to-end on job #153 (all 8 tasks ✔, cache MISS seeded).