fix(ci): restore host-pulled golden base on x86_64, prep macOS disk templates
Merged
BN
1mo ago+76+76+01234567890123456789-5-5-0123456789
Why
release-golden bake is 0/3 since the registry-streaming change (3f3a35ca):
- x86_64: every attempt dies in
smolvm startpulling the base —crane manifest failed ... lookup ghcr.io on 100.96.0.1:53: i/o timeout(runs #68, #69, #70, 9/9 attempts). The nested VM resolver cannot reach ghcr.io on hosted runners, while the host pulls the same digest fine (provenance capture, smolvm download, cargo all succeed on-host). - aarch64 (macos-14): dies at VmCreate with
krun_start_enter -22 (EINVAL)— smolvm's own hint for a disk/overlay that could not be opened — without ever preparing the requested 120G templates the way the Linux job does.
What
- x86_64: restore the host-side
docker pull+docker savetar path (the 0.32.7-proven configuration, withSMOLVM_MAX_IMAGE_BYTESand the memory-headroom waits), keeping the KVM grant, the-x86-64name fix, and whole-artifact publish. A local tar keeps the 17 GiB base off the VM network path entirely. - macOS: build the 120G storage/overlay templates explicitly with the brewed e2fsprogs (mirroring Linux), settle 15s + confirm deletion between retries, and dump
df/ template / machine-list diagnostics on failure so the next failure mode is identifiable. - Validation:
yaml.safe_load+bash -nclean on all 24 run blocks.
Verify
- PR checks (self-hosted suite) green
-
gh workflow run release-golden --ref fix/release-golden-hosted-bakebakes both goldens
Summary by cubic
Fixes the release-golden bake on hosted runners. The x86_64 VM could not pull the base image from ghcr.io because the nested resolver times out, and macOS failed at VmCreate because the 120G disk templates were never prepared.
- x86_64 pulls the base image on the host and passes it to the VM as a local tar, keeping the 17 GiB image off the VM network path.
- Adds memory-headroom waits before retries so the host has enough available memory to start the VM.
- macOS builds the 120G storage and overlay templates explicitly with
mkfs.ext4frome2fsprogsbefore the bake. - Waits after VM deletion and confirms it is gone before retrying, and dumps disk/machine diagnostics on failure.
- Restores the dropped attempts counter in the macOS retry loop so it still gives up after three attempts.
Summary by CodeRabbit
- Chores
- Improved Linux golden image build reliability by streaming the base image directly into the build environment and checking for sufficient memory before retries.
- Improved macOS build stability with expanded storage preparation, more reliable DNS handling, and additional virtual machine cleanup steps.
- Enhanced diagnostics after failed builds, including disk and virtual machine status information, to simplify troubleshooting intermittent failures.