Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 79 additions & 1 deletion .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
@@ -1 +1,79 @@
name: Build Android

on:
 push:
 branches: [ main, master ]
 pull_request:
 branches: [ main, master ]

env:
 NODE_VERSION: '20'

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

 - name: Setup Node.js
 uses: actions/setup-node@v4
 with:
 node-version: ${{ env.NODE_VERSION }}
 cache: 'npm'

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

 - name: Install dependencies
 run: npm ci

 - name: Build web assets
 run: npm run build

 - name: Setup Capacitor
 run: npx cap sync android

 - name: Build Android APK (debug)
 run: |
 cd android
 ./gradlew assembleDebug

 - name: Build Android AAB (release unsigned)
 run: |
 cd android
 ./gradlew bundleRelease

 - name: Upload APK
 uses: actions/upload-artifact@v4
 with:
 name: android-debug-apk
 path: android/app/build/outputs/apk/debug/app-debug.apk

 - name: Upload AAB
 uses: actions/upload-artifact@v4
 with:
 name: android-release-aab
 path: android/app/build/outputs/bundle/release/app-release.aab

name: Build Android

on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]

permissions:
contents: read

env:
NODE_VERSION: '20.19.0'

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

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'

- name: Expose Node runtime for Gradle subprocesses
run: |
echo "NODE_BINARY=$(command -v node)" >> "$GITHUB_ENV"
echo "NODE_BIN_DIR=$(dirname \"$(command -v node)\")" >> "$GITHUB_ENV"
node --version
npm --version

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

- name: Install dependencies
run: npm ci

- name: Build web assets
run: npm run build

- name: Setup Capacitor
run: npx cap sync android

- name: Ensure Gradle wrapper is executable
run: chmod +x android/gradlew

- name: Build Android APK (debug)
env:
PATH: ${{ env.NODE_BIN_DIR }}:${{ env.PATH }}
NODE_BINARY: ${{ env.NODE_BINARY }}
Comment on lines +54 to +56
run: |
cd android
./gradlew assembleDebug --stacktrace

- name: Build Android AAB (release unsigned)
env:
PATH: ${{ env.NODE_BIN_DIR }}:${{ env.PATH }}
NODE_BINARY: ${{ env.NODE_BINARY }}
run: |
cd android
./gradlew bundleRelease --stacktrace

- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: android-debug-apk
path: android/app/build/outputs/apk/debug/app-debug.apk

- name: Upload AAB
uses: actions/upload-artifact@v4
with:
name: android-release-aab
path: android/app/build/outputs/bundle/release/app-release.aab
Loading