🌠
〚Rust〛GitHub ActionsでtauriのAndroidビルドを行う
これを元に少し手を加えた。
name: Build
on:
push:
branches:
- main
env:
CARGO_TERM_COLOR: always
NDK_VERSION: 29.0.13113456
jobs:
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
run: rustup update stable && rustup default stable
# 実は最初からrustupできる
# https://docs.github.com/ja/actions/use-cases-and-examples/building-and-testing/building-and-testing-rust#specifying-a-rust-version
- name: Setup Rust targets
run: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
# https://v2.tauri.app/ja/start/prerequisites/#linux で示されているもの
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
- name: Setup Android SDK
uses: android-actions/setup-android@v3
with:
packages: "build-tools;36.0.0 ndk;${{ env.NDK_VERSION }} platform-tools platforms;android-35"
# NDKなどもここで入れられる
- name: Install Node.js dependencies
run: pnpm install
- name: Setup Android signing
run: |
cd src-tauri/gen/android
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties
echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties
base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks
echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties
# https://v2.tauri.app/ja/distribute/sign/android/#configure-the-signing-key にActionsの例があるので踏襲する
- name: Setup Android Environment
run: |
echo "NDK_HOME=$ANDROID_HOME/ndk/${{ env.NDK_VERSION }}/" > $GITHUB_ENV
- name: Build
run: pnpm tauri android build --ci
$ANDROID_HOME
は元々設定されているので、Buildステップのenv:
で変に設定しようとするとWarn `ANDROID_HOME` isn't set; falling back to `ANDROID_SDK_ROOT`, which is deprecated
などと言われる? ようだ。
Discussion