Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/ios-kmp-selfhosted-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ on:
description: "Path to directory containing Fastfile. If not specified, uses iosApp. Example: iosApp/appA"
type: string
required: false
kotlin_native_cache:
description: "Whether to cache the Kotlin/Native compiler caches of library dependencies (~/.konan/.../klib/cache) between runs. A debug framework link on a fresh runner otherwise rebuilds them every time, which can take several minutes for large dependency graphs like Compose Multiplatform."
type: boolean
required: false
default: true

secrets:
GRADLE_CACHE_ENCRYPTION_KEY:
Expand Down Expand Up @@ -74,6 +79,16 @@ jobs:
uses: gradle/actions/setup-gradle@v5
with:
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
# Only the caches of library dependencies (`*-user*`) are built during the link; the compiler,
# platform klibs and their caches come with the Kotlin/Native distribution. Library caches live in
# per-version folders, so the key changes with libs.versions.toml and has no restore-keys fallback:
# a partial restore would carry outdated library versions into every new cache.
- name: Cache Kotlin/Native library caches
if: ${{ inputs.kotlin_native_cache }}
uses: actions/cache@v6
with:
path: ~/.konan/kotlin-native-prebuilt-*/klib/cache/*-user*
key: konan-klib-cache-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/libs.versions.toml') }}
- name: Build KMP Package
if: ${{ inputs.kmp_swift_package_integration }}
env:
Expand Down
3 changes: 3 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,9 @@ All iOS actions support:

## Important Conventions

### Public Repository
This repository is public and open source. Never mention internal or client projects (repository names, app names, bundle IDs, ticket keys), internal discussions or decisions, or private infrastructure details anywhere they end up public: code, comments, commit messages, PR titles and descriptions, issues and release notes. Describe the situation generically instead, e.g. "a Compose Multiplatform project with ~130 library dependencies" rather than the project's name.

### Secrets Management
- iOS workflows require App Store Connect API keys and Match password
- Android workflows require keystore passwords and Google Play service account JSON
Expand Down
Loading