final release with bug fix #22
This file contains 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: Build and Release APK | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-release: | |
name: Build And Release APK | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up JDK 18 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 18 | |
distribution: 'temurin' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x ./gradlew | |
- name: Fetch latest release tag | |
id: fetch_latest_tag | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
LATEST_TAG=$(gh release list --limit 1 --json tagName --jq '.[0].tagName') | |
echo "latest_tag=${LATEST_TAG}" >> $GITHUB_ENV | |
- name : Retrieve Version | |
id: android_version | |
run: | | |
echo "::set-output name=VERSION_NAME::$(${{github.workspace}}/gradlew -q printVersionName)" | |
- name: Get version | |
run: | | |
echo "version_name=${{steps.android_version.outputs.VERSION_NAME}}" >> $GITHUB_ENV | |
- name: Compare version names | |
id: compare_versions | |
run: | | |
if [ "${{ env.version_name }}" == "${{ env.latest_tag }}" ]; then | |
echo "Version ${VERSION_NAME} is the same as the latest release. Skipping build and release." | |
echo "skip_build=true" >> $GITHUB_ENV | |
else | |
echo "Version ${VERSION_NAME} is different from the latest release. Proceeding with build and release." | |
echo "skip_build=false" >> $GITHUB_ENV | |
fi | |
- name: Build APK | |
if: ${{ env.skip_build == 'false' }} | |
run: ./gradlew assembleRelease | |
- name: Upload APK as artifact | |
if: ${{ env.skip_build == 'false' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: app-release | |
path: app/build/outputs/apk/release/app-release-unsigned.apk | |
- name: Download APK artifact | |
if: ${{ env.skip_build == 'false' }} | |
uses: actions/download-artifact@v3 | |
with: | |
name: app-release | |
- name: Create GitHub Release | |
if: ${{ env.skip_build == 'false' }} | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: '${{ env.version_name }}' | |
release_name: 'TextAutomater ${{ env.version_name }}' | |
draft: false | |
prerelease: false | |
body: "Automated release for build #${{ env.version_name }}" | |
- name: Upload APK to Release | |
if: ${{ env.skip_build == 'false' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./app-release-unsigned.apk | |
asset_name: textAutomater.apk | |
asset_content_type: application/vnd.android.package-archive |