name: Deploy APK from master on: workflow_dispatch: jobs: build-and-publish: runs-on: ubuntu-latest env: GRADLE_FILE: presentation/build.gradle steps: - name: Checkout master uses: actions/checkout@v4 with: ref: master fetch-depth: 0 - name: Set up Java 17 uses: actions/setup-java@v3 with: distribution: temurin java-version: '17' - name: Decode Android keystore run: | echo "${{ secrets.KEYSTORE_FILE }}" \ | base64 --decode > keystore.p12 - name: Build release APK run: | chmod +x ./gradlew ./gradlew clean :presentation:assembleRelease \ -Pandroid.injected.signing.store.file=keystore.p12 \ -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} \ -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} \ -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} # ───────────────────────────────────────────────────────────────── # 1) Extract versionName into an environment variable - name: Extract versionName id: extract run: | version=$(grep versionName $GRADLE_FILE \ | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+') echo "VERSION=$version" >> $GITHUB_ENV # 2) Publish using that VERSION - name: Publish GitHub Release uses: softprops/action-gh-release@v1 with: tag_name: v${{ env.VERSION }} files: presentation/build/outputs/apk/release/*-release.apk env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}