diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..ec1dd3d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,63 @@ +name: Build APK + +on: + push: + branches: [ "main", "master" ] + pull_request: + branches: [ "main", "master" ] + workflow_dispatch: + +jobs: + build: + name: Build Debug & Release APK + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build Debug APK + run: ./gradlew assembleDebug --stacktrace + + - name: Upload Debug APK + uses: actions/upload-artifact@v4 + with: + name: debug-apk + path: app/build/outputs/apk/debug/*.apk + retention-days: 7 + + # ------------------------------------------------------- + # Release build (signed). Requires secrets to be set up + # in your GitHub repo settings. See notes below. + # ------------------------------------------------------- + - name: Build Release APK + run: ./gradlew assembleRelease --stacktrace + + - name: Sign Release APK + uses: r0adkll/sign-android-release@v1 + id: sign_apk + with: + releaseDirectory: app/build/outputs/apk/release + signingKeyBase64: ${{ secrets.SIGNING_KEY_BASE64 }} + alias: ${{ secrets.KEY_ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + env: + BUILD_TOOLS_VERSION: "35.0.0" + + - name: Upload Release APK + uses: actions/upload-artifact@v4 + with: + name: release-apk-signed + path: ${{ steps.sign_apk.outputs.signedReleaseFile }} + retention-days: 14