diff --git a/.gitea/workflows/android.yml b/.gitea/workflows/android.yml index 92be67dd..d9fa5e8f 100644 --- a/.gitea/workflows/android.yml +++ b/.gitea/workflows/android.yml @@ -26,6 +26,9 @@ on: paths: - 'crates/**' - 'clients/android/**' + # The builder image is part of what this artifact is built from — an image + # change must exercise its consumer. + - 'ci/android-ci.Dockerfile' - 'Cargo.toml' - 'Cargo.lock' - 'rust-toolchain.toml' @@ -39,6 +42,9 @@ on: paths: - 'crates/**' - 'clients/android/**' + # The builder image is part of what this artifact is built from — an image + # change must exercise its consumer. + - 'ci/android-ci.Dockerfile' - 'Cargo.toml' - 'Cargo.lock' - 'rust-toolchain.toml' diff --git a/clients/android/kit/build.gradle.kts b/clients/android/kit/build.gradle.kts index b73f22c3..7d0807b4 100644 --- a/clients/android/kit/build.gradle.kts +++ b/clients/android/kit/build.gradle.kts @@ -47,7 +47,11 @@ dependencies { // /README.md): `cargo install cargo-ndk` + `rustup target add aarch64-linux-android x86_64-linux-android`. // ------------------------------------------------------------------------------------------------ val repoRoot = rootDir.parentFile.parentFile // clients/android -> clients -> repo root -val cargoBin = "${System.getProperty("user.home")}/.cargo/bin" +// CARGO_HOME first: rustup puts every binary in $CARGO_HOME/bin, and the CI image +// (ci/android-ci.Dockerfile) installs the shared toolchain at /usr/local/cargo — the +// historical ~/.cargo fallback is what a GUI Android Studio launch (no env) still needs. +val cargoBin = System.getenv("CARGO_HOME")?.let { "$it/bin" } + ?: "${System.getProperty("user.home")}/.cargo/bin" // SDK location without depending on AGP's DSL (sdkDirectory isn't in AGP 9's library extension): // env first (set by Android Studio and by our CLI shell), then local.properties, then the default.