Retry the image build step to ride out the setup-qemu flake #77
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
monolith-os/monolith!77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "build-step-retries"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Roughly every night one of the matrix editions fails with exit code 1 before the build even starts, in the Set up QEMU step inside blue-build/github-action. That step JSON-parses the stdout of a
docker run tonistiigi/binfmt, and when several matrix jobs hit the host's shared binfmt_misc at the same moment, that run occasionally returns empty output and the step dies withUnexpected end of JSON input. Re-running the job by hand always passes.The action gives us no way to skip or retry its QEMU step (checked v1.12.0 and current main), so this retries the whole build step: up to three attempts, the first two with continue-on-error, only the last one deciding the job. Between attempts the leftover buildah workers get swept the same way the job-start sweep does, so a failed attempt can't wedge the retry when the CLI removes the base image after building.
Tradeoff: a genuine build failure now replays up to two more times, but the podman layer cache makes the replays mostly cache hits on the way back to the failing layer, and fail-fast is already off. The three attempts must keep identical inputs; Renovate bumps the action ref on all three at once, cli_version stays a manual bump in three places.
🧪 Test this PR on a real install
Once the build checks on this PR pass, a signed test image is published for each edition this PR builds. Pick the one matching your hardware and, from an existing Monolith install (which already has the signing policy), rebase onto it:
gnomekdexfcecosmicbudgiehyprland-noctaliahyprland-dmsniri-noctalianiri-dmsnourishgnome-nvidiakde-nvidiaxfce-nvidiacosmic-nvidiabudgie-nvidiahyprland-noctalia-nvidiahyprland-dms-nvidianiri-noctalia-nvidianiri-dms-nvidianourish-nvidiaThe tags are rebuilt on every new commit here, so
rpm-ostree upgradepulls the latest build. When you're done testing, return to your edition's released image (:latest).The commands cover the editions this PR affected when it was opened; commits that touch more editions publish their tags too, just without a refreshed comment. The test tags stop updating once this PR is merged or closed.