Add docs/index.html landing page; publish.yml substitutes build info
Replaces the inline 4-line index.html written in publish.yml with a
proper text-mostly landing page under docs/index.html — sections for
what it is, install, the loop it replaces, commands, why, and a
'this build' block populated at publish time from VERSION, SHA-256,
and build timestamp via sed.
Single-column, ~44rem max width, system fonts, monospace for code,
dark-mode via prefers-color-scheme. No JS, no images, no remote
assets. ~130 lines of HTML+CSS.
Add builds.sr.ht CI: unit, e2e, and tag-only publish
Three independent manifests under .builds/ (within the 4-build-per-push
cap):
* unit.yml — ubuntu/noble, go test ./..., smoke ./cacher version. Runs
on master and tags.
* e2e.yml — ubuntu/noble + docker.io, runs the testcontainers e2e suite
(go test -tags=e2e). Pulls dxflrs/garage:v2.3.0 per Garage container.
Runs on master and tags.
* publish.yml — tag-only. Builds linux-amd64 static binary, ships it
two ways: as a build artifact (visible on the job page, 90-day TTL)
and via hut pages publish to cacher.srht.bigb.es with a minimal
index.html and embedded sha256 for verification. Uses
oauth: pages.sr.ht/PAGES:RW so no manual secret registration needed.
Go is installed from upstream tarball in every manifest because
ubuntu/noble's golang-go is too old for the go.mod requirement
(1.26.3). hut is built from source in publish.yml since it's not
packaged for noble.
README install snippet updated to point at the pages URL.