chore(release): bump version to 1.10.0 #82
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
| # SPDX-License-Identifier: AGPL-3.0-or-later | |
| # Copyright (C) 2026 FunnyCups (https://github.com/funnycups) | |
| name: Build Android APK | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| build_type: | |
| description: Build type to run manually | |
| required: true | |
| default: debug | |
| type: choice | |
| options: | |
| - debug | |
| - release | |
| push: | |
| branches: | |
| - "**" | |
| tags: | |
| - "*" | |
| permissions: | |
| contents: write | |
| env: | |
| NODEJS_MOBILE_ASSET_URL: https://github.com/funnycups/nodejs-mobile/releases/download/v1.0.1/nodejs-mobile-android.zip | |
| NODEJS_MOBILE_ASSET_NAME: nodejs-mobile-android.zip | |
| NODEJS_MOBILE_RUNTIME_MAJOR: "24" | |
| NODEJS_MOBILE_MIN_MAJOR: "24" | |
| NODEJS_MOBILE_ENFORCE_MIN_MAJOR: "1" | |
| jobs: | |
| build-debug-apk: | |
| if: > | |
| github.repository == 'funnycups/Luker' && | |
| ((github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')) || (github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'debug')) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Build debug APK | |
| run: bash android-app/scripts/build-android-apk.sh debug | |
| - name: Upload debug APK artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: luker-android-debug-apk-${{ github.sha }} | |
| path: android-app/app/build/outputs/apk/debug/*.apk | |
| build-release-apk: | |
| if: > | |
| github.repository == 'funnycups/Luker' && | |
| ((github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) || (github.event_name == 'workflow_dispatch' && github.event.inputs.build_type == 'release')) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "npm" | |
| - name: Validate tag matches app version | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | |
| run: | | |
| PKG_VERSION="$(node -p "require('./package.json').version")" | |
| TAG_VERSION="${GITHUB_REF_NAME#v}" | |
| if [[ "${TAG_VERSION}" != "${PKG_VERSION}" ]]; then | |
| echo "Tag version (${TAG_VERSION}) does not match package.json version (${PKG_VERSION})." >&2 | |
| exit 1 | |
| fi | |
| - name: Setup Java | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: Validate release signing secrets | |
| run: | | |
| test -n "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | |
| test -n "${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" | |
| test -n "${{ secrets.ANDROID_KEY_ALIAS }}" | |
| test -n "${{ secrets.ANDROID_KEY_PASSWORD }}" | |
| - name: Decode Android keystore | |
| run: echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > android-app/release.keystore | |
| - name: Build signed release APK | |
| run: bash android-app/scripts/build-android-apk.sh release | |
| env: | |
| ANDROID_KEYSTORE_FILE: ${{ github.workspace }}/android-app/release.keystore | |
| ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} | |
| ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} | |
| ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} | |
| - name: Upload release APK artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: luker-android-release-apk-${{ github.sha }} | |
| path: android-app/app/build/outputs/apk/release/*.apk | |
| - name: Publish release assets | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| name: ${{ github.ref_name }} | |
| generate_release_notes: true | |
| files: | | |
| android-app/app/build/outputs/apk/release/*.apk |