Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a91339e
ci: gate releases on artifact layout + consumer smokes across all cha…
dignifiedquire Jun 22, 2026
50626b0
fix(release): publish Android native libs in the Kotlin Maven artifact
okdistribute Jun 15, 2026
ad8cd1b
Fix - binary copy done correctly
jj10133 Jun 21, 2026
22c0fa8
Fix - added small flag not flatten sliently
jj10133 Jun 21, 2026
d370692
Fix - diverged accordingly to all platforms
jj10133 Jun 21, 2026
0084b4f
Fix - restructed macOS-skeleton
jj10133 Jun 21, 2026
6c2e865
ci: run release-artifact verifies on every PR + add iOS simulator run…
dignifiedquire Jun 22, 2026
2d6c572
ci: add JVM consumer-smoke matrix across all 4 published host platforms
dignifiedquire Jun 22, 2026
a8de102
ci(kotlin): use taiki-e/install-action for cargo-make on aarch64
dignifiedquire Jun 22, 2026
1d44d40
fix(make): set script_extension=sh for verify-kotlin-consumer
dignifiedquire Jun 22, 2026
45f13a3
ci: fix new verify gate failures (extract scripts, install cargo-make…
dignifiedquire Jun 22, 2026
b0869ef
fix(make): use command/args form for verify-kotlin-consumer on Windows
dignifiedquire Jun 22, 2026
39db738
ci: fix Windows bindgen-kotlin + Rosetta macOS arch detection in JVM …
dignifiedquire Jun 22, 2026
4b5dae2
ci(kotlin): use xcode16 runner pool for macOS JVM smoke (native-arm)
dignifiedquire Jun 22, 2026
2c72676
fix(make): use sh instead of bash for cargo-make commands (Windows PATH)
dignifiedquire Jun 22, 2026
8f8c333
fix(android-smoke): exclude jna JAR from iroh dep so only the AAR ships
dignifiedquire Jun 22, 2026
c40e42e
fix(android-smoke): bump Kotlin/AGP/Gradle to match kotlin/lib's 2.2.20
dignifiedquire Jun 22, 2026
3414d96
refactor(swift): build xcframework via xcodebuild -create-xcframework…
dignifiedquire Jun 23, 2026
f4fe38a
fix(verify-swift-consumer): use simctl UDID lookup for iOS sim destin…
dignifiedquire Jun 23, 2026
aa9a19e
ci: move Swift xcframework build/upload from tag-CI to PR-CI (draft-r…
dignifiedquire Jun 23, 2026
5449267
docs(release): wire pre-release-check + RELEASING.md + comments to ne…
dignifiedquire Jun 23, 2026
7bb54d9
fix(verify-kotlin-consumer): use hw.optional.arm64 for Rosetta-immune…
dignifiedquire Jun 23, 2026
45d78c6
kotlin(d1): split into :lib (JAR) + :android (AAR) multi-project build
dignifiedquire Jun 23, 2026
c24bf9e
ci: install Android SDK on every Gradle job after D1 multi-project split
dignifiedquire Jun 23, 2026
159f740
kotlin(d2+d3): move android natives to AAR module + wire android-smoke
dignifiedquire Jun 24, 2026
0251398
kotlin(d4): document iroh-android AAR + JVM JAR split in RELEASING.md
dignifiedquire Jun 24, 2026
3e41312
kotlin: auto-shim JAVA_HOME to JDK 17 on macOS when default is unsupp…
dignifiedquire Jun 24, 2026
7c26bd2
address PR review: flatten android-smoke, trim CI yaml, extract relea…
dignifiedquire Jun 25, 2026
09f1099
fix(kotlin): re-add android.useAndroidX after flattening android-smoke
dignifiedquire Jun 25, 2026
82754a1
fix(release.yml): add jobs: key swallowed by comment-trim commit
dignifiedquire Jun 25, 2026
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
112 changes: 106 additions & 6 deletions .github/workflows/ci_kotlin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,61 @@ jobs:
distribution: "temurin"
java-version: "21"
- uses: gradle/actions/setup-gradle@v4
- name: cargo make test-kotlin
run: cargo make test-kotlin
- uses: android-actions/setup-android@v3
if: matrix.name != 'linux-aarch64'
- run: cargo make test-kotlin

kotlin-jvm-consumer-smoke:
name: Kotlin - JVM consumer smoke (${{ matrix.name }})
timeout-minutes: 30
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- name: linux-x86_64
runner: [self-hosted, linux, X64]
cargo_target: x86_64-unknown-linux-gnu
- name: linux-aarch64
runner: [self-hosted, linux, ARM64]
cargo_target: aarch64-unknown-linux-gnu
- name: macOS-aarch64
# xcode16 → native-arm runner pool; the unlabeled macOS/ARM64 pool
# is Rosetta'd and uname misreports x86_64.
runner: [self-hosted, macOS, ARM64, xcode16]
cargo_target: aarch64-apple-darwin
- name: windows-x86_64
runner: [windows-latest]
cargo_target: x86_64-pc-windows-msvc
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@master
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.cargo_target }}
- uses: Swatinem/rust-cache@v2
with:
key: kotlin-consumer-${{ matrix.name }}
# taiki-e/install-action has no aarch64-linux cargo-make and davidB
# ships x86_64-only; cargo install works on every host.
- name: Install cargo-make
shell: bash
run: |
if ! command -v cargo-make >/dev/null 2>&1; then
cargo install --locked cargo-make
fi
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
- uses: gradle/actions/setup-gradle@v4
- uses: android-actions/setup-android@v3
if: matrix.name != 'linux-aarch64'
- run: cargo make verify-kotlin-consumer

kotlin-android:
name: Kotlin - Android cross-build
Expand All @@ -62,13 +115,60 @@ jobs:
distribution: "temurin"
java-version: "21"
- uses: android-actions/setup-android@v3
- name: Setup Android NDK
uses: arqu/setup-ndk@main
- uses: arqu/setup-ndk@main
id: setup-ndk
with:
ndk-version: r23
add-to-path: true
- name: cargo make kotlin-android
env:
- env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
run: cargo make kotlin-android

kotlin-android-consumer-smoke:
name: Kotlin - Android consumer smoke (emulator)
timeout-minutes: 45
# ubuntu-latest has /dev/kvm via nested-virt; kotlin-android's
# self-hosted runner doesn't.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
submodules: recursive
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android
- uses: Swatinem/rust-cache@v2
- uses: davidB/rust-cargo-make@v1
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
- uses: android-actions/setup-android@v3
- uses: arqu/setup-ndk@main
id: setup-ndk
with:
ndk-version: r23
add-to-path: true
- run: cargo install --version 3.5.4 cargo-ndk --locked
- name: Cross-build Android natives
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
run: |
cargo ndk -o ./android-jniLibs \
-t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 \
build --release --lib -p iroh-ffi
- run: bash scripts/stage_android_natives.sh
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
arch: x86_64
target: google_apis
force-avd-creation: false
emulator-options: -no-window -no-audio -no-boot-anim -gpu swiftshader_indirect -no-metrics
disable-animations: true
script: bash scripts/run_android_smoke.sh
11 changes: 11 additions & 0 deletions .github/workflows/ci_swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,15 @@ jobs:
- uses: Swatinem/rust-cache@v2
- uses: davidB/rust-cargo-make@v1
- name: cargo make test-swift
# Builds the full Apple xcframework + runs the IrohLib test suite for
# macOS via xcodebuild test.
run: cargo make test-swift
- name: cargo make verify-swift-xcframework
# Asserts per-slice bundle layout (shallow iOS, deep macOS — Xcode 27+
# rejects shallow Info.plist on macOS, iroh-ffi#247).
run: cargo make verify-swift-xcframework
- name: cargo make verify-swift-consumer
# iOS device build + iOS Simulator full test run (boots a sim, runs
# IrohLibTests on iOS runtime). Catches link errors + iOS-side runtime
# regressions that macOS-only test-swift can't see.
run: cargo make verify-swift-consumer
Loading
Loading