From 9f5720c35fb0514dbdc7688e7d6ec3d10d3ee578 Mon Sep 17 00:00:00 2001 From: TrianguloY Date: Wed, 28 Aug 2024 18:39:45 +0200 Subject: [PATCH] generate release when a new tag is pushed resolves #290 --- .github/workflows/alpha.yml | 2 -- .github/workflows/latest.yml | 2 -- .github/workflows/release.yml | 56 +++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/alpha.yml b/.github/workflows/alpha.yml index e96d8d6..8ee5110 100644 --- a/.github/workflows/alpha.yml +++ b/.github/workflows/alpha.yml @@ -45,13 +45,11 @@ jobs: run: zip -j -P ${{ secrets.ALPHA_PASS }} ${{ env.ZIP }} app/build/outputs/apk/${{ env.VARIANT }}/app-${{ env.VARIANT }}.apk - name: Update ${{ env.TAG }} tag to current commit - # equivalent to EndBug/latest-tag@latest but simpler run: | git tag --force ${{ env.TAG }} git push --force origin tag ${{ env.TAG }} - name: Upload ${{ env.ZIP }} to ${{ env.TAG }} release - # equivalent to softprops/action-gh-release@v1 but using official cli run: | gh release upload ${{ env.TAG }} ${{ env.ZIP }} --clobber env: diff --git a/.github/workflows/latest.yml b/.github/workflows/latest.yml index f4f04c4..e6c207c 100644 --- a/.github/workflows/latest.yml +++ b/.github/workflows/latest.yml @@ -36,13 +36,11 @@ jobs: EOF - name: Update ${{ env.TAG }} tag to current commit - # equivalent to EndBug/latest-tag@latest but simpler run: | git tag --force ${{ env.TAG }} git push --force origin tag ${{ env.TAG }} - name: Upload ${{ env.SHIELDS }} to ${{ env.TAG }} release - # equivalent to softprops/action-gh-release@v1 but using official cli run: | gh release upload ${{ env.TAG }} ${{ env.SHIELDS }} --clobber env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..235b61f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,56 @@ +# Generates and uploads a release version when a new tag is pushed +name: Create release + +on: + # trigger for tags starting with 'v' + push: + tags: + - v* + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Get the repository files + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Setup gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Create release store file + run: | + RELEASE_STORE_FILE=$(readlink -f release_store_file) + echo -n "$RELEASE_STORE_FILE_ENCRYPTED" | base64 --decode > $RELEASE_STORE_FILE + echo "RELEASE_STORE_FILE=$RELEASE_STORE_FILE" >> "$GITHUB_ENV" + env: + RELEASE_STORE_FILE_ENCRYPTED: ${{ secrets.RELEASE_STORE_FILE }} + + - name: Build & assemble + run: ./gradlew build assembleRelease + env: + RELEASE_STORE_PASSWORD: ${{ secrets.RELEASE_STORE_PASSWORD }} + RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }} + RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }} + + - name: Upload apk to release with the release notes + run: > + sed '/^$/q' ./app/src/main/play/release-notes/en-US/default.txt + | + gh release create $TAG + ./app/build/outputs/apk/release/*.apk + --title="URLCheck ${TAG#v} release apk" + --notes-file - + --latest + --verify-tag + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG: ${{ github.ref_name }} \ No newline at end of file