Skip to content

Commit

Permalink
chore(ci): add android build
Browse files Browse the repository at this point in the history
  • Loading branch information
hrzlgnm committed Oct 4, 2024
1 parent ad673c2 commit b9ed733
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 0 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: "Reusable android workflow"

on:
workflow_call:
secrets:
ANDROID_RELEASE_KEYSTORE:
required: true
ANDROID_RELEASE_KEY:
required: true
ANDROID_RELEASE_PASSWORD:
required: true
ANDROID_RELEASE_KEY_PASSWORD:
required: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"

- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Install NDK
run: sdkmanager "ndk;27.0.11902837"

- name: Install rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android

- name: Cached install trunk
uses: taiki-e/cache-cargo-install-action@caa6f48d18d42462f9c30df89e2b4f71a42b7c2c # v2.0.1
with:
tool: trunk@0.20.3
locked: true

- name: Cached install cargo-auditable
uses: taiki-e/cache-cargo-install-action@caa6f48d18d42462f9c30df89e2b4f71a42b7c2c # v2.0.1
with:
tool: cargo-auditable@0.6.4
locked: true

- name: Cached install tauri-cli
uses: taiki-e/cache-cargo-install-action@caa6f48d18d42462f9c30df89e2b4f71a42b7c2c # v2.0.1
with:
tool: tauri-cli@2.0.0
locked: true

- name: Build app bundle
run: cargo --locked auditable tauri android build -v
env:
NDK_HOME: ${{ env.ANDROID_HOME }}/ndk/27.0.11902837

- name: Extract android signing key from env
run: |
echo "${{ secrets.ANDROID_RELEASE_KEYSTORE }}" > src-tauri/gen/android/release.jks.base64
base64 -d src-tauri/gen/android/release.jks.base64 > src-tauri/gen/android/release.decrypted.jks
- name: Sign APK
run: |
${{ env.ANDROID_HOME }}/build-tools/34.0.0/apksigner sign --ks src-tauri/gen/android/release.decrypted.jks \
--ks-key-alias ${{ secrets.ANDROID_RELEASE_KEY }} \
--ks-pass pass:${{ secrets.ANDROID_RELEASE_PASSWORD }} \
--key-pass pass:${{ secrets.ANDROID_RELEASE_KEY_PASSWORD }} \
--out src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-signed.apk \
src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk
- name: Get version from tauri.android.conf.json
id: get_version
run: |
CURRENT_VERSION=$(jq -r '.version' src-tauri/tauri.android.conf.json)
echo "current_version=$CURRENT_VERSION" >> "$GITHUB_ENV"
- name: Rename APK file
run: |
mv ./src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-signed.apk ./src-tauri/gen/android/app/build/outputs/apk/universal/release/mdns-browser-${{ steps.et-version.outputs.current-version }}.apk
- name: Publish
uses: softprops/action-gh-release@v1
with:
draft: true
name: Android mDNS Browser-v${{ steps.get_version.outputs.current-version }}
tag_name: v${{ steps.get_version.outputs.current-version }}
generate_release_notes: true
files: |
./src-tauri/gen/android/app/build/outputs/apk/universal/release/mdns-browser-${{ steps.package-version.outputs.current-version }}.apk
6 changes: 6 additions & 0 deletions .github/workflows/tauri-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ jobs:
contents: write
uses: ./.github/workflows/tauri.yml
secrets: inherit

android-pr:
permissions:
contents: write
uses: ./.github/workflows/android.yml
secrets: inherit

0 comments on commit b9ed733

Please sign in to comment.