fix: runner download endpoint serves no binaries — replace Burrito with Rust CLI #1
closed
Opened by cole.christensen@gmail.com
Links
No links yet.
Problem
/runner/download?os=Linux&arch=aarch64 returns:
{"error":"Binary for Linux/aarch64 not built yet.","platforms":[]}
/runner/version confirms zero platforms available:
{"version":"0.7.0","platforms":[]}
Root Cause
The Dockerfile builds Elixir/Burrito runner binaries via anvil_runner/, but that build has been silently failing (|| true suppresses errors). The actual runners deployed (carl, donut) use the Rust CLI (anvil runner start), not the Burrito runner. The Elixir runner is dead code.
Solution
- Remove
anvil_runner/Elixir project (dead code) - Remove Zig installation and Burrito build from Dockerfile
- Modify CI
build-imagestep to cross-compile the Rust CLI for linux_amd64 and linux_arm64 - Place compiled binaries in Docker build context as
priv/runner/anvil_runner_linux_{amd64,arm64} RunnerDownloadControllerserves them as-is (same naming convention)
Requirements
-
GET /runner/download?os=Linux&arch=x86_64serves the amd64 Rust CLI binary -
GET /runner/download?os=Linux&arch=aarch64serves the arm64 Rust CLI binary -
GET /runner/versionlists both platforms -
curl -fsSL .../runner/install.sh | shworks on both architectures - Dead Elixir runner code removed
Closed by the full release + install pipeline. Summary:
fangorn/anvil-cliCI publishes CalVer releases on every main push, withanvil_linux_{amd64,arm64}_VERSIONassets plus aSHA256SUMS_VERSIONmanifest (PRs #4, #5, #6).- Server-side
/runner/downloadstreams the platform binary from the latest release (fangorn/anvil#49). - Server-side
/runner/checksumsstreams the SHA256SUMS; install script verifies before installing (fangorn/anvil#65). curl -fsSL https://anvil.fangorn.io/runner/install.sh | shinstalls as/usr/local/bin/anvil, verifies checksum, runs--version, and migrates any legacyanvil-runnerinstall (stops service, removes old binary, regenerates service file with new ExecStart path).- Verified end-to-end from a fresh Debian container against the real deployed server. Production runner on carl migrated and reporting
anvil 2026.04.5.