spawn/.github/workflows
Ahmed Abushagur 77c3e34803
feat(docker): replace Packer snapshots with Docker-based agent delivery (#2206)
* feat(docker): replace Packer snapshots with Docker-based agent delivery

Docker images on GHCR are public and cross-account, unlike DO snapshots
which are private/account-scoped. Cloud-init installs Docker + pulls the
agent image during boot. The install step extracts pre-built binaries via
`docker cp` and falls back to normal install if unavailable.

- Add Dockerfiles for all 7 agents (claude, codex, openclaw, opencode,
  kilocode, zeroclaw, hermes)
- Convert docker.yml to matrix build for all agents
- Add tryInstallFromDocker() shared helper with Docker-first install
- Add Docker pull to DigitalOcean cloud-init userdata
- Remove Packer snapshot pipeline, lookup, and SSH-only wait
- Remove packer/ directory (HCL templates, tier scripts, agents.json)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* security: address review findings in docker agent delivery

- Add agentName validation regex (/^[a-z0-9-]+$/) in digitalocean.ts
  before interpolation into cloud-init script
- Quote dockerImage variable in all docker command strings in
  agent-setup.ts to prevent command injection
- Restrict docker cp to specific known directories (.claude, .bun,
  .local, .npm, .cargo, .opencode) instead of blanket /root/.

Agent: pr-maintainer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
2026-03-05 11:23:56 -05:00
..
cli-release.yml feat: migrate to openrouter.ai/labs/spawn CDN + release artifact version checks (#2178) 2026-03-03 23:34:58 -08: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 feat(docker): replace Packer snapshots with Docker-based agent delivery (#2206) 2026-03-05 11:23:56 -05:00
gate.yml fix: allow repo collaborators through the gate workflow (#1166) 2026-02-14 18:32:50 -08:00
lint.yml refactor: extract inline hook commands to TypeScript scripts (#2174) 2026-03-03 23:05:41 -08:00
qa.yml ci: bump QA cron from daily to every 4 hours (#1895) 2026-02-24 16:46:55 -08:00
refactor.yml fix: Node.js v22 upgrade, aider uv install, SSH & cloud reliability (#1440) 2026-02-18 06:54:07 -05:00
security.yml refactor: simplify claude launch — no streaming, no output monitoring (#1412) 2026-02-17 09:02:47 -08:00
test.yml ci: add Mock Tests job to satisfy required status check (#1904) 2026-02-25 00:54:33 -05:00