name: Android Release on: push: branches: - master jobs: release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: Extract versionName id: version run: | VERSION=$(grep -oP 'versionName\s+"[^"]+"' app/build.gradle | cut -d'"' -f2) echo "version=$VERSION" >> $GITEA_OUTPUT echo "Detected version: $VERSION" - name: Check if tag exists id: tagcheck run: | if git rev-parse "${{ steps.version.outputs.version }}" >/dev/null 2>&1; then echo "exists=true" >> $GITEA_OUTPUT else echo "exists=false" >> $GITEA_OUTPUT fi - name: Stop if version already released if: steps.tagcheck.outputs.exists == 'true' run: | echo "Version already released, skipping." exit 0 - name: Decode keystore run: | echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore - name: Build Release APK env: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} run: | ./gradlew assembleRelease \ -Pandroid.injected.signing.store.file=release.keystore \ -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \ -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ -Pandroid.injected.signing.key.password=$KEY_PASSWORD - name: Create git tag run: | git tag ${{ steps.version.outputs.version }} git push origin ${{ steps.version.outputs.version }} - name: Create Gitea Release uses: gitea/release-action@v1 with: token: ${{ secrets.API_TOKEN }} tag_name: ${{ steps.version.outputs.version }} name: Release ${{ steps.version.outputs.version }} body: | Android release ${{ steps.version.outputs.version }} files: | app/build/outputs/apk/release/*.apk