Repository navigation
ci(manager): boot the guest just built before uploading it - #17
Conversation
build-guest only assembled the files. A guest whose kernel modules did not match the kernel (no network, no fw_cfg arguments) was uploaded and pinned by amdl, and only a real Mac showed it. The new step boots the guest in QEMU with amdl's own code (AMDL-Web/apple-music-downloader's guestboot action, which runs TestGuestBoot) and fails unless the manager arguments reach init, the network is up, the pinned payload downloads with its digest checked and the manager answers /status. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: LYJW131 <153256373+LYJW131@users.noreply.github.com>
| - name: Boot the guest | ||
| uses: AMDL-Web/apple-music-downloader/.github/actions/guestboot@ci/gates | ||
| with: | ||
| checkout: dev |
There was a problem hiding this comment.
🔴 Boot gate passes without booting guest
With checkout: dev, the action runs against a branch without TestGuestBoot. Its filtered go test succeeds with no matching test, so a broken guest can be uploaded.
Learn more
The external action is loaded from ci/gates, but its checkout input separately selects the amdl source branch for go test. At this revision, dev lacks TestGuestBoot; Go still exits successfully when a -run filter matches no tests. The upload step therefore runs without testing the built guest.
Example: A manager guest with nonworking network reaches this step. The action checks out dev, runs no boot test, returns success, and uploads that guest instead of rejecting it.
Recommended fix: Select ci/gates for checkout while the boot test exists only there. When moving to dev, verify that both the action and TestGuestBoot are present on that branch; make the action fail when the named test did not run.
| checkout: dev | |
| checkout: ci/gates |
Was this helpful? React with 👍 or 👎 to provide feedback.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: LYJW131 <153256373+LYJW131@users.noreply.github.com>
Runs amdl's guest boot test (AMDL-Web/apple-music-downloader#105) on the manager guest this workflow just built, before the artifact is uploaded. It fails unless the manager arguments reach init, the guest has network, its pinned payload downloads with the sha256 checked, and the manager answers /status. Without it a guest with mismatched kernel modules (fixed in #16) was uploaded and pinned; the test fails on that guest with the fault named.
The action reference points at the
ci/gatesbranch of amdl until #105 is ondev; it switches todevbefore this merges.The test that the manager does not panic when the payload download fails already exists from #16 (
TestPrepareWrapperRetriesUntilThePayloadArrives), so none is added.🤖 Generated with Claude Code