feat: bump version to 2.4, target Android 16 (API 36) & update releas… #6
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 APK | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| inputs: | |
| tag_name: | |
| description: 'Tag name for the release (e.g. v1.0.0)' | |
| required: true | |
| default: 'v-dev' | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-and-release: | |
| runs-on: ubuntu-latest | |
| env: | |
| GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError" | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Configure Keystore Signing | |
| env: | |
| KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }} | |
| KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | |
| KEY_ALIAS: ${{ secrets.KEY_ALIAS }} | |
| KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} | |
| if: ${{ env.KEYSTORE_BASE64 != '' && env.KEYSTORE_PASSWORD != '' && env.KEY_ALIAS != '' && env.KEY_PASSWORD != '' }} | |
| run: | | |
| echo "$KEYSTORE_BASE64" | base64 --decode > my-release-key-v2.jks | |
| echo "storePassword=$KEYSTORE_PASSWORD" > keystore.properties | |
| echo "keyPassword=$KEY_PASSWORD" >> keystore.properties | |
| echo "keyAlias=$KEY_ALIAS" >> keystore.properties | |
| echo "storeFile=../my-release-key-v2.jks" >> keystore.properties | |
| - name: Make Gradle Wrapper Executable | |
| run: chmod +x gradlew | |
| - name: Run Unit Tests | |
| run: ./gradlew test | |
| - name: Build Release APK | |
| run: ./gradlew assembleRelease | |
| - name: Prepare Release Notes | |
| env: | |
| TAG_NAME: ${{ github.event.inputs.tag_name || github.ref_name }} | |
| run: | | |
| SHORT_TAG="${TAG_NAME%.*}" | |
| if [ -f "docs/release-notes/${TAG_NAME}.md" ]; then | |
| cp "docs/release-notes/${TAG_NAME}.md" release_notes.md | |
| elif [ -f "docs/release-notes/${SHORT_TAG}.md" ]; then | |
| cp "docs/release-notes/${SHORT_TAG}.md" release_notes.md | |
| else | |
| echo "Release notes for ${TAG_NAME} not found." > release_notes.md | |
| fi | |
| - name: Create GitHub Release and Upload APK | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.event.inputs.tag_name || github.ref_name }} | |
| body_path: release_notes.md | |
| files: | | |
| app/build/outputs/apk/release/*.apk | |
| draft: false | |
| prerelease: ${{ contains(github.event.inputs.tag_name || github.ref_name, '-') }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |