ci(v3): add Android and iOS to cross-compile matrix + per-PR mobile compile check - #5889
ci(v3): add Android and iOS to cross-compile matrix + per-PR mobile compile check#5889mortenolsrud wants to merge 2 commits into
Conversation
The cross-compile lane covered only desktop targets; mobile was never compiled in CI. Add android/arm64 and ios/arm64 rows to the existing matrix, reusing its per-row runner field: - Android cross-compiles from Linux via the NDK, so it rides the existing ubuntu lane (ubuntu-latest ships the Android SDK + NDK preinstalled). - iOS is the only target that requires a Mac, so it runs on macos-latest (Xcode + iOS SDK preinstalled). No custom image or self-hosted runner is needed for either. Desktop-only steps (host GTK deps, Docker cross-image) are guarded off for mobile; the go.mod replace step is kept so mobile also builds against the PR's local source. Mobile toolchain setup just points at the runner's preinstalled NDK / Xcode.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
WalkthroughThe CI configuration adds Android/arm64 and iOS/arm64 targets to cross-compilation tests. It also adds a dedicated mobile compilation workflow for ChangesMobile compilation validation
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/mobile-compile-check.yml:
- Around line 5-8: Update the workflow header and the Android and iOS job
descriptions to state that go build ./pkg/application/ only validates mobile
package compilation and reports errors, without producing or linking a mobile
executable. Keep the existing compilation commands unchanged unless adding
explicit framework/final-link coverage is required.
- Around line 41-42: Update the actions/checkout@v4 step in the mobile compile
workflow to set persist-credentials to false, and apply the same setting to
other checkout steps that do not require authenticated Git access. Retain
persisted credentials only for workflows with later repository write operations.
- Around line 18-24: Update the paths filter in the mobile compile workflow to
trigger for all local build inputs used by v3/pkg/application, preferably by
replacing the narrow entries with v3/**; alternatively include
v3/internal/assetserver**, v3/internal/capabilities**, and v3/pkg/updater**
alongside the existing paths.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 2e75211f-190a-4e40-a6a3-8d465b4b9ad8
📒 Files selected for processing (2)
.github/workflows/cross-compile-test-v3.yml.github/workflows/mobile-compile-check.yml
ca299cb to
b1b4074
Compare
|
All three findings addressed in the force-push:
|
Complement the full mobile cross-compile (approval-gated in cross-compile-test-v3.yml) with a fast per-PR tier that pure-compiles pkg/application — all mobile-tagged Go plus the Objective-C iOS delegate — for android/arm64 (ubuntu + preinstalled NDK) and ios/arm64 (macos + preinstalled Xcode). Runs on pull_request in seconds without npm, Gradle or the Xcode overlay pipeline, catching compile/link regressions early.
b1b4074 to
8b476ff
Compare
Description
The cross-compile lane (
cross-compile-test-v3.yml) covers only desktop targets; mobile was never compiled in CI. This adds Android and iOS to the existing matrix, plus a lightweight per-PR smoke check.1. Full cross-compile matrix (existing workflow, approval-gated):
android/arm64onubuntu-latest— NDK cross-compile from Linux (preinstalled)ios/arm64onmacos-latest— Xcode + iOS SDK (preinstalled)Both use the runner's preinstalled toolchains — no custom Docker image or self-hosted runner needed.
2. Lightweight per-PR check (new workflow,
pull_request-triggered):go build ./pkg/application/for Android (ubuntu + NDK CC) and iOS (macos +xcrunSDK)Desktop-only steps (host GTK deps, Docker cross-image) are guarded off for mobile. The
go.modreplace step is kept so mobile builds exercise the PR's code.Type of change
How Has This Been Tested?
macos-latestrunner (fork CI run Port setup #1, 57s, BUILD SUCCESS).go build ./pkg/application/with NDK CC, exit 0).python3 -c "import yaml; yaml.safe_load(open(...))"— both files parse clean.The full
task <os>:buildpath (matrix addition) pulls the same npm/gradle/xcode-overlay pipeline that the desktop cross-compile uses — it may need a round of iteration on the actual runners.Test Configuration
macos-latestChecklist:
website/src/pages/changelog.mdxNote: This IS the test infrastructure — it adds CI validation for code that previously had none.
Summary by CodeRabbit