ci: re-enable riscv64 releases, don't let one arch block the manifest - #758
ci: re-enable riscv64 releases, don't let one arch block the manifest#758mauro-agent wants to merge 6 commits into
Conversation
Mauro still has real AuroraBoot release work ahead (kairos-io/AuroraBoot#758 needs a real tag push to validate, then an actual release). This post stays scoped to "here's the image, help me test it" -- the AuroraBoot story is its own post, next week, once that work has actually landed. Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
Removing only the AuroraBoot staleness caveat left the instructions themselves in place -- someone following them today still hits the exact problem the caveat warned about, just without the warning. Cutting the "long path" section entirely keeps this post to the ISO/raw image download only. Build-your-own instructions come back once kairos-io/AuroraBoot#758 has actually landed and released. Also fixed the frontmatter description, which still promised "build and boot your own image." Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Re-enables the riscv64 release image build and adjusts the release image workflow so a single-architecture failure (riscv64) no longer prevents publishing the multi-arch manifest for successful architectures (amd64/arm64).
Changes:
- Reintroduce
build-uiandbuild-linux-riscv64jobs for release builds. - Make the manifest
buildjob run even if riscv64 fails, while still requiring amd64/arm64 success. - Conditionally include the riscv64 image in the manifest only when its build succeeded; increase UI artifact retention to 3 days.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #758 +/- ##
==========================================
+ Coverage 49.71% 49.72% +0.01%
==========================================
Files 77 77
Lines 9733 9735 +2
==========================================
+ Hits 4839 4841 +2
Misses 4337 4337
Partials 557 557 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- build-ui's comment claimed it's shared by every arch job. It isn't: amd64/arm64 build their own UI inline via Dockerfile's js stage, only riscv64 needs the separate build-ui job. Corrected. - setup-node, upload-artifact, and download-artifact were still pinned to the versions from before kairos-io#545 disabled this job. Bumped all three to v7, matching tests.yml and test-riscv64.yml elsewhere in the repo. Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
Reverts kairos-io#545's disable of the riscv64 release build, and separately fixes the actual bug kairos-io#545's own title named: one failed arch job skipped the final manifest job entirely, leaving the release tag completely unpublished on quay (v0.22.0 never got a manifest, not even for amd64/arm64). Checked test-riscv64.yml's actual recent run history before reverting: zero riscv64-job failures across the last 20 PR CI runs on the same ubuntu-24.04-riscv runner (the only 2 failures were an unrelated build-ui/npm issue that skipped the riscv64 job before it ran). Whatever made the runner unreliable in June looks resolved, so this restores the build-ui/build-linux-riscv64 jobs unchanged rather than guessing at a different fix for a problem that isn't currently reproducing. The manifest job now runs regardless of riscv64's outcome (still requires amd64/arm64), and includes riscv64 in the published manifest only if it actually succeeded that run -- a riscv64 flake degrades to a two-arch release instead of no release at all. Also bumped the UI artifact's retention from 1 to 3 days: kairos-io#545 noted a same-day retry couldn't recover because the artifact had already expired. Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Mauro Morales <contact@mauromorales.com>
The inline comments had grown into a retelling of the investigation (run-history counts, the artifact-TTL story) that belongs in the commit message, not in code a future editor has to read past. Kept only the load-bearing why, with issue references for anyone who wants the rest. Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Mauro Morales <contact@mauromorales.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
- build-ui's comment claimed it's shared by every arch job. It isn't: amd64/arm64 build their own UI inline via Dockerfile's js stage, only riscv64 needs the separate build-ui job. Corrected. - setup-node, upload-artifact, and download-artifact were still pinned to the versions from before kairos-io#545 disabled this job. Bumped all three to v7, matching tests.yml and test-riscv64.yml elsewhere in the repo. Signed-off-by: Mauro Morales <contact@mauromorales.com> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Mauro Morales <contact@mauromorales.com>
8837698 to
8ab6ca4
Compare
|
Timing investigation, recorded before a session restart so it isn't lost. The native Ran the same build locally (16 CPUs / 58GB, Tried fixing that properly, pinning Net result: the plain unpinned emulated build (24m15s) is the only approach actually proven to work end to end. The |
…ted EOF) Signed-off-by: mauro-agent <mauro-agent@mrls.xyz> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
|
Decision: ship the plain, fully-emulated build now. It already works end to end (this PR's own runs prove that). The Retriggered CI above: the failing |
…building the test image, unrelated to this diff) Signed-off-by: mauro-agent <mauro-agent@mrls.xyz> Co-developed-by: Claude Sonnet 5 <noreply@anthropic.com>
What
Reverts #545's disable of the riscv64 release build, and separately fixes the bug #545's own title named: one failed arch job skipped the final manifest job entirely, leaving the release tag completely unpublished on quay (
v0.22.0never got a manifest, not even for amd64/arm64).Why revert now
Checked
test-riscv64.yml's actual recent run history before reverting: zero riscv64-job failures across the last 20 PR CI runs on the sameubuntu-24.04-riscvrunner (the 2 failures in that window were an unrelatedbuild-ui/npm issue that skipped the riscv64 job before it even ran). Whatever made the runner unreliable back in June looks resolved, so this restoresbuild-ui/build-linux-riscv64unchanged rather than guessing at a different fix for a problem that isn't currently reproducing.The actual fix
The
build(manifest) job now runs regardless of riscv64's outcome, still requiring amd64/arm64 to succeed, and includes riscv64 in the published manifest only if it actually succeeded that run. A riscv64 flake degrades to a two-arch release instead of no release at all.Also bumped the UI artifact's retention from 1 to 3 days: #545 noted a same-day retry couldn't recover because the artifact had already expired by the time anyone re-ran the failed job.
Test plan