Add tea to the base, and a slop-generator variant carrying claude #9
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/slop-generator-variant-with-claude"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The claude-* pipelines in Someones.Computer fetch a pinned
claude(~270 MB) and a pinnedtea(~29 MB) on every job. This bakes both in. Measured against run 1967 over there — a review at 189s wall clock, 45s of it the tools-plus-gates window — that is worth 25–35s a run.Two binaries, two places
They are different sizes of favour, so they land differently:
tearunnerbase — every tag gets itclaudephp8.5-slop-generatorThe variant is a stage on top of
runner, not a second base, so PHP, node, go, docker and tea are the same build and the same bytes asphp8.5— claude is the only difference. One non-matrix bake target rather than one per PHP version, because php8.5 is the only tag anything dispatches against.teais pinned per architecture (both checksums lifted from the release'schecksums.txt) and builds on amd64 and arm64. The claude stage is amd64 only even on a multiarch main build: the pinned asset islinux-x64-musland the caller pins the same slug, so an arm64 variant means a second pin. It waits until something dispatches on arm64 — and until then the stage refuses to build on another arch rather than baking a binary that cannot run.Both are verified against a checksum literal, so a republished release fails the build rather than shipping quietly, and both are then run. That last part is not ceremony: this base is musl, the glibc claude build dies at runtime with
Error relocating …claude: unsupported relocation type 37, and that only surfaces once the binary executes. Running it here turns a failed job downstream into a failed image build.Verified
Each block built standalone against the published
php8.5image, so the proof exercises the real downloads and checksums without an emulated rebuild of PHP/go/node:linux/amd64Version: 0.15.1linux/arm64Version: 0.15.1— native, exercises the new arm64 pinlinux/amd64claude.partial: OK,2.1.220 (Claude Code)under musllinux/arm64The slop-generator stage pins an amd64 claude; aarch64 is not supported.FAILED/computed checksum did NOT match, build diesAnd against the resulting image, the check the consumer actually gates on:
That last line is the safety property worth stating plainly: the consumer gates its download on the reported version, not on presence, so an image whose pins drift from a caller's costs the speedup and nothing else. The worst outcome is losing the saving, never running an unpinned binary — which is also why bumping
claude_versionover there does not have to wait for an image rebuild.docker buildx bake --printresolves the default group to["runner", "slop-generator"], so the existing build job publishes the new tag with no workflow change.hadolint reports the same
SC3040/DL4006pair on the two new heredocRUNs that the existing OpenTofu block already produces — it parses heredocs as POSIX sh and ignores theSHELL ["/bin/bash", …]above them. No new finding class.Follow-up, elsewhere
The
container:bump that consumes this is a separate PR in Someones.Computer, and it is held as a draft until this merges andphp8.5-slop-generatorexists — until then those jobs would fail to pull.Pull request closed