name: Build APK on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest defaults: run: shell: bash working-directory: ./apk steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🟢 Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: 📦 Install dependencies run: npm install - name: ☕ Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: 📱 Setup Android SDK uses: android-actions/setup-android@v3 - name: ⚙️ Expo prebuild run: npx expo prebuild --clean --non-interactive - name: 📋 Grant execute permission for Gradle working-directory: ./apk/android run: chmod +x gradlew - name: 🔧 Setup Gradle wrapper working-directory: ./apk/android run: ./gradlew wrapper --gradle-version 8.14.3 - name: 🏗️ Build APK (Release) working-directory: ./apk/android run: ./gradlew clean assembleRelease --stacktrace - name: 📦 Upload APK uses: actions/upload-artifact@v4 if: success() with: name: app-release path: ./apk/android/app/build/outputs/apk/release/app-release.apk retention-days: 30