name: Release APK on: push: tags: - 'v*.*.*' # Triggers for tags like v1.0.0 jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: Grant execute permission for Gradlew run: chmod +x ./gradlew - name: Build APK run: ./gradlew assembleRelease # Optional: Sign APK (requires secrets) # - name: Sign APK # uses: r0adkll/sign-android-release@v1 # with: # releaseDirectory: app/build/outputs/apk/release # signingKeyBase64: ${{ secrets.SIGNING_KEY }} # alias: ${{ secrets.ALIAS }} # keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} # keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Upload APK as artifact uses: actions/upload-artifact@v4 with: name: app-release-apk path: app/build/outputs/apk/release/app-release.apk release: needs: build runs-on: ubuntu-latest steps: - name: Download APK artifact uses: actions/download-artifact@v4 with: name: app-release-apk path: . - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: files: app-release.apk env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}