Symptom
Every Release run on main since v0.2.14 is red (runs for a4a7a28, 8f7e283, b15a6aa, 15c0e28). release-go (amd64) and release-rust (x86_64-unknown-linux-musl) fail at the "Build and push … Docker image (multi-arch)" step:
ERROR: failed to build: Multi-platform build is not supported for the docker driver.
Switch to a different driver, or turn on the containerd image store, and try again.
publish-release is skipped, so v0.2.15, v0.2.16 and v0.2.17 exist only as tags + draft prereleases with partial assets.
Cause
#31 switched the image steps to platforms: linux/amd64,linux/arm64 but never added docker/setup-buildx-action, so build-push-action runs on the default docker driver, which cannot build multi-platform.
- b15a6aa tried to add the step but mis-indented the
- if: lines → the workflow file failed to parse (run had zero jobs).
- 15c0e28 fixed the YAML by deleting the step again, so
main regressed to the original failure.
Additionally, both Dockerfiles compile inside the image per target platform (no --platform=$BUILDPLATFORM), so the arm64 leg also needs docker/setup-qemu-action for binfmt emulation.
Fix
Add setup-qemu-action + setup-buildx-action before each GHCR login (Go amd64 leg, Rust amd64 leg, TS) — PR #33.
Follow-ups (not blocking)
- Delete the orphaned v0.2.15–v0.2.17 draft prereleases and tags.
- arm64 image legs now compile under QEMU and will be slow; consider
COPYing the cross-built binaries into the image instead of rebuilding (touches the StageX reproducible-build setup, so a separate decision).
setup-rust-toolchain logs could not find Cargo.toml because its cache step runs at repo root; cache-workspaces: rs silences it.
Symptom
Every
Releaserun onmainsince v0.2.14 is red (runs for a4a7a28, 8f7e283, b15a6aa, 15c0e28).release-go (amd64)andrelease-rust (x86_64-unknown-linux-musl)fail at the "Build and push … Docker image (multi-arch)" step:publish-releaseis skipped, so v0.2.15, v0.2.16 and v0.2.17 exist only as tags + draft prereleases with partial assets.Cause
#31 switched the image steps to
platforms: linux/amd64,linux/arm64but never addeddocker/setup-buildx-action, sobuild-push-actionruns on the defaultdockerdriver, which cannot build multi-platform.- if:lines → the workflow file failed to parse (run had zero jobs).mainregressed to the original failure.Additionally, both Dockerfiles compile inside the image per target platform (no
--platform=$BUILDPLATFORM), so the arm64 leg also needsdocker/setup-qemu-actionfor binfmt emulation.Fix
Add
setup-qemu-action+setup-buildx-actionbefore each GHCR login (Go amd64 leg, Rust amd64 leg, TS) — PR #33.Follow-ups (not blocking)
COPYing thecross-built binaries into the image instead of rebuilding (touches the StageX reproducible-build setup, so a separate decision).setup-rust-toolchainlogscould not find Cargo.tomlbecause its cache step runs at repo root;cache-workspaces: rssilences it.