diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..c2520bb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,51 @@ +name: Build APK + +on: + push: + tags: + - 'v*' + workflow_dispatch: + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + + - name: Set up Android SDK + uses: android-actions/setup-android@v3 + + - name: Build debug APK + run: | + chmod +x ./gradlew + ./gradlew :app:assembleDebug --stacktrace --no-daemon + + - name: Stage APK + run: | + mkdir -p out + cp app/build/outputs/apk/debug/app-debug.apk "out/OVERWATCH-${GITHUB_REF_NAME}.apk" + + # Uploaded on every run (incl. workflow_dispatch) so a build can be + # validated without cutting a release. + - name: Upload APK artifact + uses: actions/upload-artifact@v4 + with: + name: overwatch-apk + path: out/*.apk + + # Only tag pushes (v*) create a GitHub Release with the APK attached. + - name: Publish Release + if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v2 + with: + files: out/*.apk + generate_release_notes: true