Repository navigation
Publish snapshots from Linux instead of a macOS runner - #140
Conversation
publish-snapshot only publishes Kotlin artifacts, and Kotlin/Native cross-compiles the Apple klibs from any host. Verified on 2.4.10: a Linux publishToMavenLocal emits the same 14 artifacts Maven Central holds for 0.9.1, with the iOS/tvOS/macOS klibs at their expected 504K. Nothing is lost by the move. The Apple tests this job depends on already run on macOS in kotlin-native and swift, and the existing `needs:` makes both a hard precondition. This job runs on every push to main, so it is a far more frequent macOS consumer than the release workflow. Also cache ~/.konan here, which it never did — on a cold Linux runner the Kotlin/Native toolchain download is now on the critical path. release.yml keeps its macOS runner: it is a single job that also runs the Swift, Python, TypeScript and C# suites, and swift test needs macOS. Signed-off-by: James Rich <james.a.rich@gmail.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe ChangesSnapshot publishing CI
Estimated code review effort: 1 (Trivial) | ~5 minutes Merge Risk: ⚪ Minimal · up to This localized CI change moves snapshot publishing to Linux and caches the Kotlin/Native toolchain without introducing an actionable merge-blocking risk; it is merge-ready after normal checks and review. Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) 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 |
publish-snapshotruns onmacos-latestbut only publishes Kotlin artifacts, and Kotlin/Native cross-compiles the Apple klibs from any host.Verified, not assumed
Linux, Kotlin 2.4.10, no opt-in flag:
publishToMavenLocaliosarm64,iosx64,iossimulatorarm64)Nothing is lost
The Apple tests this job depends on already run on macOS in
kotlin-nativeandswift, and the existingneeds: [kotlin, kotlin-native, swift, python, typescript, csharp]makes them a hard precondition. So unlike the sibling PRs in kzstd and meshtastic-sdk, no CI guard is needed —needs:already is one.This job fires on every push to
main, so it is a far more frequent macOS consumer than the release workflow.Also caches
~/.konanThis job never did. On a cold Linux runner the Kotlin/Native toolchain download would otherwise sit on the critical path.
Why
release.ymlis untouchedIt is a single macOS job that also runs the Swift, Python, TypeScript and C# suites, and
swift testneeds macOS. Moving its Maven publish would mean either a second runner (no queue-time win, more complexity) or migrating the Swift gate to a CI check-run guard — a bigger change than this one, and better judged separately.Part of a set: meshtastic/kzstd#68, meshtastic/meshtastic-sdk#114, meshtastic/MQTTastic-Client-KMP#135.
Summary by CodeRabbit