mirror of
https://github.com/redwoodjs/local-ci.git
synced 2026-09-19 07:54:29 +08:00
25c85ff571
A third runtime for `runs-on: ubuntu-*` jobs on arm64 hosts — microVMs via @machinen/runtime. Opt-in for now (AGENT_CI_MACHINEN=1); docker remains the default for every host. See docs/adr/0001-0004 for the design. What ships: - Runtime interface + registry (priority [machinen, macos-vm, docker]) with AGENT_CI_RUNTIME as a within-OS-family override. - Rootfs as a release asset (download-first, override via `.github/agent-ci.machinen.tar.gz`). Release-time bake script + workflow produces the asset for the `machinen-rootfs-latest` rolling tag. - Full executeMachinenJob: bake → boot → liveMount work/shims/diag/ signals → in-guest symlinks → DTU credentials via vm.writeFile → run.sh --once with RUNNER_ALLOW_RUNASROOT=1 → timeline poll → tear down. Pause-on-failure rides the existing signals-dir protocol unchanged; the liveMount makes guest writes and host writes bidirectional. - timeline-sync.ts extracted from local-job.ts so both runtimes share the same poll-and-publish logic. - runner-credentials.ts gains buildRunnerCredentials() so machinen can push the three runner-config files via vm.writeFile without duplicating the data.