diff --git a/.github/actions/setup-android/action.yml b/.github/actions/setup-android/action.yml new file mode 100644 index 000000000..60c4a3f60 --- /dev/null +++ b/.github/actions/setup-android/action.yml @@ -0,0 +1,28 @@ +# From https://tauri.app/v1/guides/getting-started/prerequisites +name: "Setup Android" +description: "Sets up the dependencies for building our Android app" +runs: + using: "composite" + steps: + - uses: ./.github/actions/setup-rust + with: + targets: armv7-linux-androideabi aarch64-linux-android x86_64-linux-android i686-linux-android + + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - uses: gradle/actions/setup-gradle@v4 + + - uses: android-actions/setup-android@v3 + + - name: Install NDK + run: sdkmanager "ndk;27.2.12479018" # Must match `kotlin/android/app/build.gradle.kts` + shell: bash + + - name: Validate Gradle wrapper + uses: gradle/actions/wrapper-validation@v4 + + - run: touch local.properties + shell: bash diff --git a/.github/workflows/_kotlin.yml b/.github/workflows/_kotlin.yml index 4f69683bc..6c3bee128 100644 --- a/.github/workflows/_kotlin.yml +++ b/.github/workflows/_kotlin.yml @@ -17,15 +17,7 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Validate Gradle wrapper - uses: gradle/actions/wrapper-validation@v4 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - run: touch local.properties + - uses: ./.github/actions/setup-android - name: Run linter run: ./gradlew spotlessCheck @@ -35,16 +27,7 @@ jobs: name: build-release steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-rust - with: - targets: armv7-linux-androideabi aarch64-linux-android x86_64-linux-android i686-linux-android - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - run: touch local.properties + - uses: ./.github/actions/setup-android - name: Bundle and sign release env: KEYSTORE_BASE64: ${{ secrets.GOOGLE_UPLOAD_KEYSTORE_BASE64 }} @@ -79,16 +62,7 @@ jobs: name: build-debug steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-rust - with: - targets: armv7-linux-androideabi aarch64-linux-android x86_64-linux-android i686-linux-android - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - run: touch local.properties + - uses: ./.github/actions/setup-android - name: Build debug APK run: | ./gradlew assembleDebug @@ -125,15 +99,7 @@ jobs: large-packages: false swap-storage: true - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-rust - with: - targets: i686-linux-android - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + - uses: ./.github/actions/setup-android # Test on x86_64 only -- prevents compiling for other targets. # See https://github.com/mozilla/rust-android-gradle?tab=readme-ov-file#specifying-local-targets - run: echo 'rust.targets=x86' > local.properties diff --git a/kotlin/android/app/build.gradle.kts b/kotlin/android/app/build.gradle.kts index 76908f544..099d7f044 100644 --- a/kotlin/android/app/build.gradle.kts +++ b/kotlin/android/app/build.gradle.kts @@ -44,10 +44,7 @@ android { namespace = "dev.firezone.android" compileSdk = 34 - - // Life is easier if we just match the default NDK on the Ubuntu 22.04 runners - // https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#android - ndkVersion = "27.1.12297006" + ndkVersion = "27.2.12479018" // Must match `.github/actions/setup-android/action.yml` defaultConfig { applicationId = "dev.firezone.android"