name: Build Android APK on: push: branches: [main] tags: ["v*"] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: Setup Android SDK uses: android-actions/setup-android@v3 - name: Install dependencies run: npm install --legacy-peer-deps - name: Expo prebuild run: npx expo prebuild --platform android --no-install - name: Generate debug keystore run: keytool -genkey -v -keystore android/app/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US" - name: Build APK working-directory: android run: ./gradlew assembleRelease - name: Upload APK artifact uses: actions/upload-artifact@v4 with: name: app-release path: android/app/build/outputs/apk/release/app-release.apk release: needs: build if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/download-artifact@v4 with: name: app-release - name: Create Release uses: softprops/action-gh-release@v2 with: files: app-release.apk generate_release_notes: true