name: Watcher-Mobile APK Build on: pull_request: branches: [main] push: branches: [main] release: types: [published] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Set up JDK 25 uses: actions/setup-java@v4 with: java-version: '25' distribution: 'temurin' cache: gradle - name: Grant execute permissions for gradlew run: chmod +x gradlew - name: Run Tests run: ./gradlew test - name: Run Lint run: ./gradlew lint - name: Build Debug APK run: ./gradlew assembleDebug - name: Upload Debug APK as Artifact uses: actions/upload-artifact@v4 with: name: app-debug path: app/build/outputs/apk/debug/app-debug.apk release: runs-on: ubuntu-latest if: github.event_name == 'release' needs: build steps: - name: Checkout Code uses: actions/checkout@v4 - name: Set up JDK 25 uses: actions/setup-java@v4 with: java-version: '25' distribution: 'temurin' cache: gradle - name: Build Release APK run: | chmod +x gradlew ./gradlew assembleRelease env: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - name: Get Release Version id: version run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Rename APK run: | mv app/build/outputs/apk/release/app-release.apk \ app/build/outputs/apk/release/app-${{ steps.version.outputs.VERSION }}.apk - name: Upload APK to Release uses: softprops/action-gh-release@v1 with: files: app/build/outputs/apk/release/app-${{ steps.version.outputs.VERSION }}.apk env: GITHUB_TOKEN: ${{ secrets.TOKEN }}