# Publish a linux-amd64 binary on every tag push. Two destinations: # # 1. Build artifact (cacher-linux-amd64 visible on the job page, # pruned by builds.sr.ht after 90 days). # # 2. pages.sr.ht under cacher.srht.bigb.es so downstream projects # can `wget https://cacher.srht.bigb.es/cacher-linux-amd64` with # a stable URL. The latest tag overwrites the previous publish; # historical versions remain available via the artifact link # during the 90-day window. # # Auto-submission is restricted to tag refs only. image: ubuntu/noble packages: - curl - ca-certificates oauth: pages.sr.ht/PAGES:RW sources: - https://git.srht.bigb.es/~bigbes/ci-cacher environment: GO_VERSION: "1.26.3" PATH: /home/build/.local/go/bin:/home/build/.local/bin:/home/build/go/bin:/usr/local/bin:/usr/bin:/bin GOPATH: /home/build/go PAGES_DOMAIN: cacher.srht.bigb.es submitter: git.sr.ht: enabled: true allow-refs: - "refs/tags/*" tasks: - install_go: | GO_TARBALL="go${GO_VERSION}.linux-amd64.tar.gz" mkdir -p ~/.local curl -sSL "https://go.dev/dl/$GO_TARBALL" -o "/tmp/$GO_TARBALL" tar -xz -C ~/.local -f "/tmp/$GO_TARBALL" rm "/tmp/$GO_TARBALL" go version - install_hut: | # hut isn't in ubuntu/noble's repos; build it from source with the # Go we just installed. ~5s on a warm GOPATH, ~30s cold. go install git.sr.ht/~xenrox/hut@latest hut --version - build: | cd ci-cacher VERSION=$(git describe --tags --abbrev=0 2>/dev/null || cat VERSION) echo "Building $VERSION" GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \ go build -ldflags "-s -w -X go.bigb.es/cacher/internal/version.version=${VERSION}" \ -o /home/build/cacher-linux-amd64 . /home/build/cacher-linux-amd64 version sha256sum /home/build/cacher-linux-amd64 - package_pages: | # pages.sr.ht expects a tarball whose top-level contents become the # site root — so `tar -C dist .`, not `tar dist/`. The binary lands # at https://$PAGES_DOMAIN/cacher-linux-amd64. A minimal index.html # makes the root URL informative instead of a 404. VERSION=$(cd ci-cacher && (git describe --tags --abbrev=0 2>/dev/null || cat VERSION)) SUM=$(sha256sum /home/build/cacher-linux-amd64 | awk '{print $1}') mkdir -p /home/build/dist cp /home/build/cacher-linux-amd64 /home/build/dist/cacher-linux-amd64 cat > /home/build/dist/index.html <cacher

cacher $VERSION

S3-backed CI cache helper. Source.

wget https://$PAGES_DOMAIN/cacher-linux-amd64
      sha256sum cacher-linux-amd64  # expect: $SUM
EOF cd /home/build/dist tar -czvf /home/build/site.tar.gz . - publish_pages: | hut pages publish -d "$PAGES_DOMAIN" /home/build/site.tar.gz artifacts: - cacher-linux-amd64