Skip to content

Build and release apk #14

Build and release apk

Build and release apk #14

Workflow file for this run

name: Build and release apk
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Get the source
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
- name: Generate Release APKs
run: ./gradlew assemblefossRelease assemblefullRelease
- name: Sign APKs (FOSS)
uses: r0adkll/sign-android-release@v1
id: sign_foss
with:
releaseDirectory: app/build/outputs/apk/foss/release
signingKeyBase64: ${{ secrets.KEYSTORE_FILE }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Sign APKs (Full)
uses: r0adkll/sign-android-release@v1
id: sign_full
with:
releaseDirectory: app/build/outputs/apk/full/release
signingKeyBase64: ${{ secrets.KEYSTORE_FILE }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Extract version name
id: extract_version
run: |
versionName=$(./gradlew -q printVersionName)
echo "VERSION_NAME=$versionName" >> $GITHUB_ENV
- name: Rename APKs
run: |
mv ${{ steps.sign_foss.outputs.signedReleaseFile }} app/build/outputs/apk/foss/release/showcase-v${{ env.VERSION_NAME }}.apk
mv ${{ steps.sign_full.outputs.signedReleaseFile }} app/build/outputs/apk/full/release/showcase-v${{ env.VERSION_NAME }}-plus.apk
- name: Install curl
run: sudo apt-get install -y curl
- name: Create and push new tag
id: tag_release
run: |
git tag "v${{ env.VERSION_NAME }}"
git push origin "v${{ env.VERSION_NAME }}"
- name: Create GitHub Release
uses: softprops/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
app/build/outputs/apk/foss/release/showcase-v${{ env.VERSION_NAME }}.apk
app/build/outputs/apk/full/release/showcase-v${{ env.VERSION_NAME }}-plus.apk
tag_name: v${{ env.VERSION_NAME }}
name: v${{ env.VERSION_NAME }}
body: |
Release of version ${{ env.VERSION_NAME }}