Skip to content

Bump version number for open beta testing (#429) #11

Bump version number for open beta testing (#429)

Bump version number for open beta testing (#429) #11

Workflow file for this run

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 }}