fixup! Upgrade to install-qt-action@v4 #201
Workflow file for this run
This file contains 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
name: Continuous Integration | |
on: [push] | |
jobs: | |
build: | |
runs-on: ${{matrix.runner || 'ubuntu-latest' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ['5.15.2', '6.5.3', '6.8.0'] | |
platform: ['android', 'linux', 'ios', 'macos', 'mingw-gcc', 'mingw-llvm', 'msvc'] | |
include: | |
# ----------------------------------------------------------------------- select platform specific Github runner | |
- platform: android | |
runner: ubuntu-latest | |
- platform: linux | |
runner: ubuntu-latest | |
- platform: ios | |
runner: macos-latest | |
- platform: macos | |
runner: macos-latest | |
- platform: mingw-llvm | |
runner: windows-latest | |
- platform: mingw-gcc | |
runner: windows-latest | |
- platform: msvc | |
runner: windows-latest | |
# --------------------------------------------------------------------------- select platform specific Qt target | |
- platform: android | |
target: android | |
- platform: ios | |
target: ios | |
# --------------------------------------------------------------------- select platform specific Qt architecture | |
- platform: android | |
arch: android_arm64_v8a | |
- platform: android | |
version: '5.15.2' | |
arch: android | |
- platform: ios | |
arch: ios | |
- platform: mingw-gcc | |
arch: win64_mingw | |
- platform: mingw-gcc | |
version: '5.15.2' | |
arch: win64_mingw81 | |
- platform: mingw-llvm | |
arch: win64_llvm_mingw | |
- platform: msvc | |
arch: win64_msvc2019_64 | |
- platform: msvc | |
version: '6.8.0' | |
arch: win64_msvc2022_64 | |
# ------------------------------------------------------------------------- select platform specific CMake flags | |
- platform: android | |
cmake-flags: [ | |
'-DANDROID_ABI:STRING=arm64-v8a', | |
'-DANDROID_PLATFORM:STRING=android-23', | |
'-DANDROID_SDK_ROOT:PATH=$ANDROID_SDK_ROOT', | |
'-DANDROID_NDK:PATH=$ANDROID_NDK_ROOT', | |
'-DANDROID_STL:STRING=c++_shared', | |
'-DANDROID_USE_LEGACY_TOOLCHAIN_FILE:BOOL=OFF', | |
'-DQT_HOST_PATH:PATH=$QT_ROOT_DIR/../gcc_64', | |
'-DQT_NO_GLOBAL_APK_TARGET_PART_OF_ALL:BOOL=ON', | |
'-GNinja', '--toolchain', '$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake', | |
] | |
- platform: ios | |
cmake-flags: [ | |
'-DCMAKE_SYSTEM_NAME:STRING=iOS', | |
'-DQT_HOST_PATH:PATH=$QT_ROOT_DIR/../macos', | |
'-GXcode', | |
] | |
- platform: macos | |
version: '5.15.2' | |
cmake-flags: [ | |
'-DCMAKE_OSX_ARCHITECTURES="arm64"', | |
] | |
- platform: linux | |
cmake-flags: [ | |
'-GNinja' | |
] | |
- platform: mingw-gcc | |
cmake-flags: [ | |
'-DCMAKE_C_COMPILER:FILEPATH=$env:IQTA_TOOLS/mingw1310_64/bin/gcc.exe', | |
'-DCMAKE_CXX_COMPILER:FILEPATH=$env:IQTA_TOOLS/mingw1310_64/bin/g++.exe', | |
'-DCMAKE_MAKE_PROGRAM:FILEPATH=$env:IQTA_TOOLS/Ninja/ninja.exe', | |
'-GNinja', | |
] | |
- platform: mingw-llvm | |
cmake-flags: [ | |
'-DCMAKE_C_COMPILER:STRING=$env:IQTA_TOOLS/llvm_mingw1706_64/bin/clang.exe', | |
'-DCMAKE_CXX_COMPILER:STRING=$env:IQTA_TOOLS/llvm_mingw1706_64/bin/clang++.exe', | |
'-DCMAKE_MAKE_PROGRAM:FILEPATH=$env:IQTA_TOOLS/Ninja/ninja.exe', | |
'-GNinja', | |
] | |
# ------------------------------------------------------------------------- select platform specific CMake tools | |
- platform: mingw-gcc | |
tools: 'tools_mingw1310 tools_ninja' | |
- platform: mingw-llvm | |
tools: 'tools_llvm_mingw1706 tools_ninja' | |
# ------------------------------------------------------------------------ select platform specific package name | |
- package: Qt6 | |
- version: '5.15.2' | |
package: Qt5 | |
# --------------------------------------------------------------------------- exclude unsupported configurations | |
exclude: | |
- platform: mingw-llvm | |
version: '5.15.2' | |
- platform: mingw-llvm | |
version: '6.5.3' | |
# qt-version: ['5.15.2', '6.5.3', '6.8.0'] | |
# configuration: | |
# - id: windows-msvc | |
# os: windows-2022 | |
# arch-qt6_8: win64_msvc2022_64 | |
# - id: windows-mingw | |
# os: windows-2022 | |
# arch-qt5: win64_mingw81 | |
# arch-qt6: win64_mingw | |
# arch-qt6_8: win64_llvm_mingw | |
# cmake-flags: [ | |
# '-DCMAKE_C_COMPILER:FILEPATH=$env:IQTA_TOOLS/mingw1120_64/bin/gcc.exe', | |
# '-DCMAKE_CXX_COMPILER:FILEPATH=$env:IQTA_TOOLS/mingw1120_64/bin/g++.exe', | |
# '-DCMAKE_MAKE_PROGRAM:FILEPATH=$env:IQTA_TOOLS/Ninja/ninja.exe', | |
# '-GNinja', | |
# ] | |
# tools: 'tools_mingw90 tools_ninja' | |
# - id: linux | |
# os: ubuntu-22.04 | |
# cmake-flags: [ | |
# '-GNinja', | |
# ] | |
# - id: android | |
# os: ubuntu-22.04 | |
# target: android | |
# arch-qt5: android | |
# arch-qt6: android_arm64_v8a | |
# cmake-flags-qt5: [ | |
# '-DANDROID_ABI:STRING=armeabi-v7a', | |
# '-DANDROID_NDK:PATH=$ANDROID_NDK_ROOT', | |
# '-DANDROID_SDK:PATH=$ANDROID_SDK_ROOT', | |
# '-DANDROID_PLATFORM:STRING=android-21', | |
# '-DANDROID_STL:STRING=c++_shared', | |
# '-DANDROID_USE_LEGACY_TOOLCHAIN_FILE:BOOL=OFF', | |
# '-DCMAKE_FIND_ROOT_PATH:PATH=$QT_ROOT_DIR', | |
# '-DCMAKE_PREFIX_PATH:STRING=$QT_ROOT_DIR', | |
# '-GNinja', '--toolchain', '$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake', | |
# ] | |
# cmake-flags-qt6: [ | |
# '-DANDROID_ABI:STRING=arm64-v8a', | |
# '-DANDROID_PLATFORM:STRING=android-23', | |
# '-DANDROID_SDK_ROOT:PATH=$ANDROID_SDK_ROOT', | |
# '-DANDROID_NDK:PATH=$ANDROID_NDK_ROOT', | |
# '-DANDROID_STL:STRING=c++_shared', | |
# '-DANDROID_USE_LEGACY_TOOLCHAIN_FILE:BOOL=OFF', | |
# '-DCMAKE_FIND_ROOT_PATH:PATH=$QT_ROOT_DIR', | |
# '-DCMAKE_PREFIX_PATH:STRING=$QT_ROOT_DIR', | |
# '-DQT_HOST_PATH=$QT_ROOT_DIR/../gcc_64', | |
# '-DQT_NO_GLOBAL_APK_TARGET_PART_OF_ALL:BOOL=ON', | |
# '-GNinja', '--toolchain', '$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake', | |
# ] | |
# - id: macos | |
# os: macos-12 | |
# - id: ios | |
# os: macos-12 | |
# target: ios | |
# cmake-flags: [ | |
# '-DCMAKE_FIND_ROOT_PATH:PATH=$QT_ROOT_DIR', | |
# '-DCMAKE_PREFIX_PATH:STRING=$QT_ROOT_DIR', | |
# '-DCMAKE_SYSTEM_NAME:STRING=iOS', | |
# '-DQT_HOST_PATH=$QT_ROOT_DIR/../macos', | |
# '-GXcode', | |
# ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ matrix.version }} | |
target: ${{ matrix.target || 'desktop' }} | |
tools: ${{ matrix.tools || '' }} | |
arch: ${{ matrix.arch }} | |
cache: true | |
- name: Install Ninja | |
if: startsWith(matrix.runner, 'ubuntu-') | |
run: | | |
sudo apt-get install ninja-build | |
- name: Prepare | |
run: | | |
cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
run: cmake ${{github.workspace}} | |
-DCMAKE_BUILD_TYPE:STRING=Release | |
-DQT_DIR:PATH=$QT_ROOT_DIR/lib/cmake/${{matrix.package}} | |
-DCMAKE_FIND_ROOT_PATH:PATH=$QT_ROOT_DIR | |
${{ join(matrix.cmake-flags, ' ') }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: cmake-qt${{matrix.version}}-${{matrix.platform}} | |
path: | | |
${{runner.workspace}}/build/CMakeCache.txt | |
${{runner.workspace}}/build/CMakeFiles/CMakeOutput.log | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
run: cmake --build . --config Release | |
- name: Test | |
if: (matrix.target || 'desktop') == 'desktop' | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
ctest -C Release --verbose | |
- uses: actions/upload-artifact@v4 | |
if: (matrix.target || 'desktop') == 'desktop' | |
with: | |
name: ctest-qt${{matrix.version}}-${{matrix.platform}} | |
path: | | |
${{runner.workspace}}/build/Testing/Temporary/LastTest.log |