diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..f8bda34 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,76 @@ +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