Skip to content

feat: native to JS bridge #81

feat: native to JS bridge

feat: native to JS bridge #81

Workflow file for this run

name: Build APK
on:
push:
branches: [ '**' ]
pull_request:
permissions:
contents: read
env:
JAVA_VERSION: 17
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ env.JAVA_VERSION }}
cache: gradle
- name: Setup Android SDK
uses: android-actions/setup-android@v2
- name: Make Gradle executable
run: chmod +x ./gradlew
- name: Optional Keystore (if provided)
env:
KEYSTORE: ${{ secrets.KEYSTORE }}
run: |
if [ -n "$KEYSTORE" ]; then
echo "$KEYSTORE" | base64 -d > signing-key.jks
ls -l signing-key.jks
else
echo "No keystore provided, skipping..."
fi
- name: Assemble Debug and Release
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
GRADLE_OPTS: -Dorg.gradle.daemon=false
run: |
if [ -f signing-key.jks ]; then
./gradlew assembleDebug assembleRelease \
-Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/signing-key.jks \
-Pandroid.injected.signing.store.password="$KEYSTORE_PASSWORD" \
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
-Pandroid.injected.signing.key.password="$KEY_PASSWORD"
else
./gradlew assembleDebug assembleRelease
fi
- name: Collect APKs
run: |
mkdir -p dist
cp app/build/outputs/apk/debug/*.apk dist/ || true
# Prefer signed release if produced
if ls app/build/outputs/apk/release/*-signed.apk >/dev/null 2>&1; then
cp app/build/outputs/apk/release/*-signed.apk dist/
else
cp app/build/outputs/apk/release/*.apk dist/
fi
ls -1 dist
- name: Upload All APKs
uses: actions/upload-artifact@v4
with:
name: apks
path: dist/*.apk
if-no-files-found: error