Make base_ubuntu_warden_rosetta host-architecture agnostic so it can run in CI - #715
Make base_ubuntu_warden_rosetta host-architecture agnostic so it can run in CI#715mkocher wants to merge 1 commit into
Conversation
The stage executed arm64 binaries while doing its work — the tar self-test, and `dpkg -x` in the chroot, which shells out to the just-swapped GNU tar — so it only ran on an Apple Silicon host. Download all the arm64 debs first, extract them from outside the chroot with the builder image's tar, then swap and statically verify (e_machine == 183) every replacement, including tar and the systemd daemons. The tar round-trip now runs only behind an exec probe and skips loudly otherwise, in the stage and in rosetta_spec.rb, so the stage can build on an x86-64 CI worker. Also cover stage_collection's rosetta insertion, which had no unit test.
|
Important Review skippedToo many files! This PR contains 211 files, which is 111 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (211)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
closing to reopen fresh against the right branch |
Human Summary
Make building the rosetta stemcell possible in CI by not relying on any of the arm binaries. Verified with a build and test deployment with the new stemcell.
AI Summary
The stage executed arm64 binaries while doing its work — the tar self-test, and
dpkg -xin the chroot, which shells out to the just-swapped GNU tar — so it only ran on an Apple Silicon host. Download all the arm64 debs first, extract them from outside the chroot with the builder image's tar, then swap and statically verify (e_machine == 183) every replacement, including tar and the systemd daemons. The tar round-trip now runs only behind an exec probe and skips loudly otherwise, in the stage and in rosetta_spec.rb, so the stage can build on an x86-64 CI worker.Also cover stage_collection's rosetta insertion, which had no unit test.