ci: build Android packages in release workflow

Provision Java, Android SDK and NDK, and Rust Android targets in GitHub Actions. Initialize the Tauri Android project, build APK and AAB packages, upload workflow artifacts, and attach them to tagged releases. Document local Android packaging and signing requirements.
This commit is contained in:
2026-09-16 17:20:09 -04:00
parent 84fd2da49c
commit e3b34a9712
3 changed files with 65 additions and 3 deletions

View File

@@ -48,4 +48,59 @@ jobs:
releaseName: 'Cipher Master ${{ github.ref_name }}'
releaseBody: 'Download the compiled standalone application binaries below.'
releaseDraft: true
prerelease: false
prerelease: false
android:
name: Android APK and AAB
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Install Android SDK packages
run: sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0" "ndk;27.2.12479018"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android, armv7-linux-androideabi, i686-linux-android, x86_64-linux-android
- name: Install Tauri CLI
run: cargo install tauri-cli --version '^2.0' --locked
- name: Initialize Android project
working-directory: src-tauri
run: cargo tauri android init
- name: Build Android packages
working-directory: src-tauri
run: cargo tauri android build --apk --aab
- name: Upload Android packages
uses: actions/upload-artifact@v4
with:
name: cipher-master-android-${{ github.ref_name }}
path: |
src-tauri/gen/android/app/build/outputs/apk/**/*.apk
src-tauri/gen/android/app/build/outputs/bundle/**/*.aab
if-no-files-found: error
- name: Attach Android packages to GitHub release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
src-tauri/gen/android/app/build/outputs/apk/**/*.apk
src-tauri/gen/android/app/build/outputs/bundle/**/*.aab
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}