spawn/.github/workflows
Ahmed Abushagur 3ae6554c21
Some checks failed
Lint / ShellCheck (push) Has been cancelled
Lint / Biome Lint (push) Has been cancelled
Lint / macOS Compatibility (push) Has been cancelled
ci(docker): build multi-arch images (amd64 + arm64) (#3392)
* ci(docker): build multi-arch images (amd64 + arm64)

The agent images at ghcr.io/openrouterteam/spawn-<agent>:latest were built
linux/amd64 only. On Apple Silicon (arm64) hosts running --beta sandbox,
OrbStack pulls the amd64 image and runs it under Rosetta. Inside the
container, github-auth.sh's `apt-get update` to install gh hangs in
emulation — confirmed by `[rosetta] /usr/lib/apt/methods/http` processes
sleeping forever. A native arm64 ubuntu:24.04 finishes the same apt-get
update + curl install in ~12s; the amd64-emulated run was still stuck
after 5+ minutes.

Adds docker/setup-qemu-action + docker/setup-buildx-action and sets
platforms: linux/amd64,linux/arm64 on the build-push step. Builds will
take longer (arm64 layer compiles under QEMU on the amd64 runner), but
the resulting multi-arch manifest gives Apple Silicon users native arm64
binaries and unblocks the sandbox flow.

All current Dockerfiles (claude, codex, cursor, hermes, junie, kilocode,
openclaw, opencode, pi) install via npm or arch-aware curl scripts, so
they're already arch-portable.

* ci(docker): verify the pushed manifest contains both architectures

Post-build step runs `docker buildx imagetools inspect` and greps the
manifest for both linux/amd64 and linux/arm64. Catches regressions
where setup-qemu/buildx gets dropped or the `platforms:` flag gets
lost in a future refactor — silent single-arch publishes would be
invisible until an Apple Silicon user hit the Rosetta hang again.

One post-build step per matrix entry keeps the check local to the
agent that was just pushed.

---------

Co-authored-by: Claude <claude@anthropic.com>
2026-05-05 00:27:08 -07:00
..
agent-tarballs.yml fix(zeroclaw): remove broken zeroclaw agent (repo 404) (#3107) 2026-03-30 15:35:40 -07:00
cli-release.yml fix: pin GitHub Actions to commit SHAs, version-lock CI tools (#2983) 2026-03-26 00:27:58 +07:00
discovery.yml fix: Node.js v22 upgrade, aider uv install, SSH & cloud reliability (#1440) 2026-02-18 06:54:07 -05:00
docker.yml ci(docker): build multi-arch images (amd64 + arm64) (#3392) 2026-05-05 00:27:08 -07:00
gate.yml ci(gate): stop auto-closing issues from non-collaborators (#3359) 2026-04-24 23:26:47 -07:00
growth.yml feat: Reddit growth agent with Slack approval workflow (#3142) 2026-04-02 23:34:36 -07:00
lint.yml fix(ci): remove stale paths from biome check, extend biome to .claude/ (#3123) 2026-03-31 11:29:27 +07:00
packer-snapshots.yml fix(digitalocean): use canonical DIGITALOCEAN_ACCESS_TOKEN env var (#3099) 2026-03-30 08:48:56 +07:00
qa.yml feat: never-give-up resilience layer (#2807) 2026-03-19 17:33:22 -07:00
refactor.yml fix(agent-team): cut token spend — reduce cron frequency + downgrade team-lead to Sonnet (#3310) 2026-04-16 00:06:56 -07:00
security.yml fix(agent-team): cut token spend — reduce cron frequency + downgrade team-lead to Sonnet (#3310) 2026-04-16 00:06:56 -07:00
test.yml fix: pin GitHub Actions to commit SHAs, version-lock CI tools (#2983) 2026-03-26 00:27:58 +07:00