ci(release): add linux arm64 desktop artifacts#2675
Conversation
Signed-off-by: sunilkumarvalmiki <g.sunilkumarvalmiki@gmail.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthroughThis PR adds official Linux aarch64 (ARM64) release binary support across the entire build and release pipeline. The desktop workflow now builds aarch64 binaries, CI steps are generalized for both architectures, asset validation is updated with ARM64 patterns, the installer resolves aarch64 assets, AppImage tooling gains architecture awareness, and updater manifests are published with the new platform. ChangesLinux aarch64 release support
Sequence DiagramsequenceDiagram
participant Builder as Build Workflow
participant Installer as Install Script
participant ReleaseValidator as Release Validator
participant Manifest as Updater Manifest
Builder->>Builder: Compile aarch64-unknown-linux-gnu (ubuntu-24.04-arm)
Builder->>Builder: Generate deb + appimage artifacts
ReleaseValidator->>ReleaseValidator: Validate linux-aarch64 asset patterns
Installer->>Installer: Resolve linux-aarch64 platform key
Installer->>Installer: Match AppImage by (arm64|aarch64) regex
Manifest->>Manifest: Lookup LIN_AARCH64 asset
Manifest->>Manifest: Register linux-aarch64 platform
Manifest->>Manifest: Validate all required platforms present
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
graycyrus
left a comment
There was a problem hiding this comment.
Review — Linux ARM64 desktop artifacts
Clean, well-scoped CI/release infrastructure change that delivers exactly what #1599 asks for. No runtime code touched.
What changed
| Area | Change |
|---|---|
build-desktop.yml |
New ubuntu-24.04-arm matrix row for aarch64-unknown-linux-gnu; generalized ubuntu- platform guards |
release-production.yml |
ARM64 AppImage + .deb added to required release asset patterns |
publish-updater-manifest.sh |
linux-aarch64 entry in manifest generation + required-platforms check |
strip-appimage-graphics-libs.sh |
Arch-aware appimagetool URL, loader name, library roots, and repack ARCH |
install.sh |
ARM64 platform key resolution; tightened x86_64 regex to amd64\.AppImage$ to avoid cross-match |
validate-release-assets.sh |
linux-aarch64 in SUPPORTED list + asset pattern; x86_64 pattern tightened |
test_install.sh |
Positive arm64 resolution test replaces the old missing-platform negative test |
fixtures/latest.json |
linux-aarch64 entry added |
Checks
- Existing x86_64 Linux paths all preserved — the regex tightening (
\.AppImage$→amd64\.AppImage$) is the correct disambiguation. startsWith(matrix.settings.platform, 'ubuntu-')cleanly generalizes the three conditional steps.strip-appimage-graphics-libs.shdispatch functions handle both arches with proper error exits on unsupported.- Manifest publisher requires all 5 platforms including the new one — partial manifests will correctly fail.
- Install fixture smoke test covers arm64 resolution.
- The one CI failure (
Rust Core Tests (Windows — secrets ACL)) is an unrelated 20-minute timeout, not caused by this PR.
Solid work. Ship it.
Summary
ubuntu-24.04-armdesktop build row for Linuxaarch64-unknown-linux-gnubundles.linux-aarch64AppImage entries inlatest.jsonalongside existing Linux x86_64 assets.linux-aarch64AppImage assets instead of hard-failing ARM64 Linux.ARCHvalues.Problem
Linux ARM64 users currently only get the standalone
openhuman-coretarball. The desktop release workflow, updater manifest, release validator, and installer all only advertise Linux x86_64 desktop assets, so ARM64 Linux users cannot install the full desktop app from official release assets.Solution
This keeps the change in the release/install layer:
ubuntu-24.04-armrunner..debin production release validation.linux-aarch64to updater manifest generation and release-asset validation.linux-aarch64inscripts/install.shand cover it in the installer fixture smoke test.Submission Checklist
## Related— N/A: no matrix feature ID applies.docs/RELEASE-MANUAL-SMOKE.md) — N/A: existing release gate is script-enforced here viascripts/validate-release-assets.sh; docs not changed to keep this ci-config pass scoped to.github/workflows/andscripts/.Closes #NNNin the## RelatedsectionImpact
Release workflow impact only. Future production releases should include Linux ARM64 desktop AppImage and
.debassets, andinstall.shcan resolve the ARM64 AppImage throughlatest.jsonor the release API fallback.Related
Closes #1599
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
sunil/1599-linux-arm64-desktop-releasec3c82e2f478e65e2141e5071117e960244e88ef7Validation Run
pnpm --filter openhuman-app format:check— scoped equivalent run:app/node_modules/.bin/prettier.cmd --check .github/workflows/build-desktop.yml .github/workflows/release-production.yml scripts/fixtures/latest.jsonpnpm typecheck— N/A: no TypeScript/runtime source changed.bash -n scripts/install.sh scripts/test_install.sh scripts/release/publish-updater-manifest.sh scripts/release/strip-appimage-graphics-libs.sh scripts/validate-release-assets.sh;bash scripts/test_install.sh; temp-fixturescripts/validate-release-assets.shwithlinux-aarch64.Validation Blocked
command:N/Aerror:N/Aimpact:N/ABehavior Changes
Parity Contract
Duplicate / Superseded PR Handling
Summary by CodeRabbit
New Features
Chores