Skip to content

55881-elys

55881-elys #35

Workflow file for this run

name: Build APK and publish
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
workflow_dispatch:
workflow_call:
permissions: write-all
jobs:
build-apk:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Getting Version Name
run: |
VERSIONNAME=$(grep -Po 'android:versionName="(.*)"' app/src/main/AndroidManifest.xml | sed -r 's/.*android:versionName="([^ ]+)".*/\1/')
echo "VERSIONNAME=$VERSIONNAME" >> $GITHUB_ENV
echo VERSIONNAME is: $VERSIONNAME
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- uses: gradle/gradle-build-action@v3
with:
gradle-version: 8.4
gradle-home-cache-cleanup: true
- uses: nttld/setup-ndk@v1
with:
ndk-version: r26c
- run: ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=app/src/main/jni/Android.mk NDK_APPLICATION_MK=app/src/main/jni/Application.mk
- name: Build APK
run: |
chmod +x gradlew
./gradlew assembleRelease
- name: current dir
run: |
pwd
- name: Setup build tool version variable
shell: bash
run: |
BUILD_TOOL_VERSION=$(ls /usr/local/lib/android/sdk/build-tools/ | tail -n 1)
echo "BUILD_TOOL_VERSION=$BUILD_TOOL_VERSION" >> $GITHUB_ENV
echo Last build tool version is: $BUILD_TOOL_VERSION
- name: Sign APK
uses: r0adkll/sign-android-release@v1
id: sign_app
with:
releaseDirectory: app/build/outputs/apk/release/
signingKeyBase64: ${{ secrets.KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.PASSWORD }}
keyPassword: ${{ secrets.PASSWORD }}
env:
BUILD_TOOLS_VERSION: ${{ env.BUILD_TOOL_VERSION }}
- name: Output Signed APK
run: echo 'Signed APK is ${{ steps.sign_app.outputs.signedReleaseFile }}'
- name: Publish GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.VERSIONNAME }}
prerelease: false
draft: false
body: ${{ github.event.head_commit.message }}
files: ${{ steps.sign_app.outputs.signedReleaseFile }}
name: APK Release ${{ env.VERSIONNAME }}