x-tools/.github/workflows/build-android.yml
2025-03-04 22:18:37 +08:00

87 lines
3.1 KiB
YAML

name: build-android
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch: # Enables manually
# on:
# push:
# branches:
# - master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QT_MODULES: 'qtcharts qtserialbus qtserialport qtwebsockets'
jobs:
build:
name: Build for Android
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2022]
version: [6.8.2]
env:
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}\res\android\android_release.keystore
QT_ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_STORE_PASS }}
QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.ANDROID_KEYSTORE_KEY_PASS }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Qt(android)
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==3.1.*'
target: android
arch: android_armv7
host: windows
dir: ${{ github.workspace }}
modules: ${{env.QT_MODULES}}
version: ${{ matrix.version }}
- name: Install Qt(mingw)
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==3.1.*'
target: desktop
arch: win64_mingw
host: windows
dir: ${{ github.workspace }}
modules: ${{env.QT_MODULES}}
version: ${{ matrix.version }}
- name: Configure for android
shell: cmd
run: |
git fetch --tags
set JAVA_HOME=%JAVA_HOME_17_X64%
${{ github.workspace }}\Qt\${{ matrix.version }}\android_armv7\bin\qt-cmake.bat ^
-G "MinGW Makefiles" ^
-S . ^
-B "build\armeabi_v7a" ^
-DQT_HOST_PATH:PATH="${{ github.workspace }}\Qt\${{ matrix.version }}\mingw_64" ^
-DCMAKE_BUILD_TYPE:STRING=Release ^
-DCMAKE_CXX_COMPILER:FILEPATH="%ANDROID_NDK_ROOT%/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe" ^
-DANDROID_SDK_ROOT:PATH="%ANDROID_SDK_ROOT%" ^
-DANDROID_NDK_ROOT:PATH="%ANDROID_NDK_ROOT%" ^
-DBUILD_SHARED_LIBS:BOOL=OFF ^
-DWITH_TOOLS:BOOL=OFF
- name: Dir build\armeabi_v7a
shell: cmd
run: dir build\armeabi_v7a
- name: Build for android
shell: cmd
run: |
set JAVA_HOME=%JAVA_HOME_17_X64%
echo %JAVA_HOME%
cmake --build build\armeabi_v7a --target all --config Release
- name: Deploy for Android
shell: cmd
run: |
set JAVA_HOME=%JAVA_HOME_17_X64%
echo %JAVA_HOME%
${{ github.workspace }}\Qt\${{ matrix.version }}\mingw_64\bin\androiddeployqt.exe ^
--input build\armeabi_v7a\android-xTools-deployment-settings.json ^
--output build\armeabi_v7a\android-build ^
--android-platform android-35 ^
--sign ${{ env.QT_ANDROID_KEYSTORE_PATH }} ${{ env.QT_ANDROID_KEYSTORE_ALIAS }} --storepass ${{ env.QT_ANDROID_KEYSTORE_STORE_PASS }} --keypass ${{ env.QT_ANDROID_KEYSTORE_KEY_PASS }} ^
--jdk %JAVA_HOME% --gradle --release