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).