Skip to content

android-cloud-check: RUNS_ON, in-job Android SDK, Kotlin/Native cache - #121

Open
ssestak wants to merge 1 commit into
mainfrom
feat/android-check-runs-on-and-sdk
Open

ssestak wants to merge 1 commit into
mainfrom
feat/android-check-runs-on-and-sdk

Conversation

@ssestak

@ssestak ssestak commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Three optional inputs on android-cloud-check.yml so a consumer can run the Android lint + test gate on self-hosted macOS runners whose image has no Android SDK. Defaults keep today's behaviour (ubuntu-latest, no SDK step, no K/N cache).

Changes

  • RUNS_ON (string, default ubuntu-latest): runner label for the job.
  • ANDROID_SDK_PACKAGES (string, default empty): when set, android-actions/setup-android@v3 installs the SDK in the job with these packages and accepts the licences.
  • KOTLIN_NATIVE_CACHE (boolean, default false): actions/cache on ~/.konan/dependencies, keyed by libs.versions.toml - on macOS the KMP toolchain otherwise downloads LLVM + libffi (~1 min) on every fresh runner.

Diagram

Job steps with the new optional ones
flowchart LR
  C["Checkout"] --> E["android-setup-environment<br/>Java · Gradle · Ruby"]
  E --> S{"ANDROID_SDK_PACKAGES set?"}
  S -- yes --> SDK["android-actions/setup-android<br/>packages + licences"] --> K
  S -- no --> K{"KOTLIN_NATIVE_CACHE?"}
  K -- yes --> KC["actions/cache ~/.konan/dependencies"] --> R
  K -- no --> R["android-check<br/>lint → tests → Danger"]
  RO(["runs-on: RUNS_ON<br/>default ubuntu-latest"]) -.-> C
Loading

Notes

  • Measured in futuredapp/tetadrogerie-kmp on a self-hosted M4 VM (4 cores, 14 GB, no SDK in the image): SDK install 18 s, lintCheck 6.5 min, unit tests 1.7 min, versus 19 + 7 min on ubuntu-latest. Consumer side: futuredapp/tetadrogerie-kmp draft PR (linked from there as blocked on this).
  • Platform package names follow the new SDK scheme (platforms;android-37.0, not android-37).
  • Follow-up candidate: the same RUNS_ON on android-cloud-nightly-build.yml.

🤖 Generated with Claude Code

https://claude.ai/code/session_01L9gziD9cVTJLX1oB8ZL73c

…ive cache inputs

Lets consumers run the Android checks on self-hosted macOS runners whose image has no Android SDK:
RUNS_ON picks the runner (default unchanged), ANDROID_SDK_PACKAGES installs the SDK in the job via
android-actions/setup-android, KOTLIN_NATIVE_CACHE keeps ~/.konan/dependencies between runs for KMP
projects that configure iOS targets on macOS. Measured in futuredapp/tetadrogerie-kmp: lintCheck 6.5 min
and tests 1.7 min on an M4 VM vs 19 and 7 min on ubuntu-latest.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9gziD9cVTJLX1oB8ZL73c
@ssestak

ssestak commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Consumer side, blocked on this: futuredapp/tetadrogerie-kmp#609 (pins this branch, switches to @2.5.0 after release).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant