name: Build and release APK on: push: branches: - main workflow_dispatch: permissions: contents: write jobs: release: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Set up Java 17 uses: actions/setup-java@v4 with: distribution: temurin java-version: '17' - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 - name: Decode Android signing keystore env: ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} run: | if [ -z "$ANDROID_KEYSTORE_BASE64" ]; then echo "Missing ANDROID_KEYSTORE_BASE64 secret" exit 1 fi echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$RUNNER_TEMP/release.keystore" - name: Build signed release APK env: ANDROID_KEYSTORE_PATH: ${{ runner.temp }}/release.keystore ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }} ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} GITHUB_RUN_NUMBER: ${{ github.run_number }} run: ./gradlew :app:assembleRelease - name: Prepare release asset run: | cp app/build/outputs/apk/release/app-release.apk SidePhOnelauncher-${{ github.run_number }}.apk - name: Publish GitHub release uses: softprops/action-gh-release@v2 with: tag_name: build-${{ github.run_number }} name: SidePhOnelauncher build ${{ github.run_number }} make_latest: true generate_release_notes: true files: SidePhOnelauncher-${{ github.run_number }}.apk body: | Automated APK build for commit `${{ github.sha }}` on `main`. Android versionName: `v6.7.1+${{ github.run_number }}` Android versionCode: a CI override derived from the workflow run number.