Skip to content

chore(release): bump version to 1.10.0 #82

chore(release): bump version to 1.10.0

chore(release): bump version to 1.10.0 #82

Workflow file for this run

# 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