Bump version number for open beta testing (#429) #11
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| concurrency: | |
| group: release-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| release: | |
| name: Build and Release APK | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Validate Gradle wrapper | |
| uses: gradle/wrapper-validation-action@v3 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| cache: 'gradle' | |
| - name: Setup Gradle | |
| uses: gradle/gradle-build-action@v3 | |
| - name: Decode keystore | |
| run: | | |
| echo "${{ secrets.RELEASE_KEYSTORE }}" | base64 -d > release.keystore | |
| chmod 600 release.keystore | |
| - name: Build signed release APK | |
| env: | |
| RELEASE_KEYSTORE_PATH: ${{ github.workspace }}/release.keystore | |
| RELEASE_STORE_PASSWORD: ${{ secrets.RELEASE_STORE_PASSWORD }} | |
| RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }} | |
| RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }} | |
| run: ./gradlew assembleRelease --stacktrace --no-daemon | |
| - name: Verify APK exists | |
| run: | | |
| if [ ! -f app/build/outputs/apk/release/app-release.apk ]; then | |
| echo "Error: APK not found" | |
| exit 1 | |
| fi | |
| - name: Verify APK signing | |
| run: | | |
| $ANDROID_HOME/build-tools/35.0.0/apksigner verify --verbose app/build/outputs/apk/release/app-release.apk | |
| - name: Get version from tag | |
| id: get_version | |
| run: | | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
| echo "VERSION_CLEAN=${VERSION#v}" >> $GITHUB_OUTPUT | |
| - name: Rename APK | |
| run: | | |
| mv app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/Urik-${{ steps.get_version.outputs.VERSION }}.apk | |
| - name: Generate SHA256 | |
| run: | | |
| cd app/build/outputs/apk/release | |
| sha256sum Urik-${{ steps.get_version.outputs.VERSION }}.apk > SHA256.txt | |
| cat SHA256.txt | |
| - name: Cleanup keystore | |
| if: always() | |
| run: | | |
| rm -f release.keystore | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| app/build/outputs/apk/release/Urik-${{ steps.get_version.outputs.VERSION }}.apk | |
| app/build/outputs/apk/release/SHA256.txt | |
| draft: true | |
| generate_release_notes: true | |
| name: Release ${{ steps.get_version.outputs.VERSION }} |