Skip to content

chore: release v0.1.8 #9

chore: release v0.1.8

chore: release v0.1.8 #9

Workflow file for this run

name: mobile build for distribution
on:
push:
tags:
- 'v*.*.*'
jobs:
build-mobile:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: ubuntu-22.04
os: android
- platform: macos-latest
os: 'ios'
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: install frontend dependencies
run: |
pnpm install
cd internal-api
pnpm install
pnpm build
- name: (Android) install Java
if: matrix.os == 'android'
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- if: matrix.os == 'android'
uses: android-actions/setup-android@v3
- name: (Android) install NDK
if: matrix.os == 'android'
run: |
echo "y" | sdkmanager --install "ndk;25.2.9519653"
echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/25.2.9519653" >> $GITHUB_ENV
echo "NDK_HOME=$ANDROID_SDK_ROOT/ndk/25.2.9519653" >> $GITHUB_ENV
- name: (Android) setup signing
if: matrix.os == 'android'
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
- name: (iOS) setup signing
if: matrix.os == 'ios'
run: |
base64 -d <<< "${{ secrets.APPLE_API_KEY_BASE64 }}" > $RUNNER_TEMP/apple-api-key.p8
# See <https://tauri.app/distribute/app-store/#authentication>
mkdir -p ~/.private_keys
cp $RUNNER_TEMP/apple-api-key.p8 ~/.private_keys/AuthKey_${{ secrets.APPLE_API_KEY }}.p8
- name: (Android) setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
if: matrix.os == 'android'
with:
targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android
- name: (iOS) setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
if: matrix.os == 'ios'
with:
targets: aarch64-apple-ios
- name: (Android) install dependencies
if: matrix.os == 'android'
run: |
cargo install cargo-ndk
- name: (Android) build .aab
if: matrix.os == 'android'
env:
NDK_HOME: ${{ env.NDK_HOME }}
run: |
pnpm tauri android build --aab --ci
- name: (iOS) build .ipa
if: matrix.os == 'ios'
env:
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
run: |
export APPLE_API_KEY_PATH=$RUNNER_TEMP/apple-api-key.p8
pnpm tauri ios build --export-method app-store-connect --ci
- name: (Android) distribute .aab
if: matrix.os == 'android'
uses: actions/upload-artifact@v4
with:
name: stayreal-android-aab
path: |
src-tauri/gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
- name: (iOS) distribute .ipa to GitHub
if: matrix.os == 'ios'
uses: actions/upload-artifact@v4
with:
name: stayreal-ios-ipa
path: |
src-tauri/gen/apple/build/arm64/StayReal.ipa
- name: (iOS) distribute .ipa to App Store Connect
if: matrix.os == 'ios'
env:
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
run: |
xcrun altool --upload-app \
--type ios \
--file "src-tauri/gen/apple/build/arm64/StayReal.ipa" \
--apiKey $APPLE_API_KEY \
--apiIssuer $APPLE_API_ISSUER