Skip to content

Also test with mingw-llvm platform #216

Also test with mingw-llvm platform

Also test with mingw-llvm platform #216

Workflow file for this run

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=x86_64',
]
- 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'
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