1111
1212jobs :
1313 build-and-test :
14-
1514 name : ${{ matrix.toolchain }}
1615 runs-on : ${{ matrix.os }}
17-
1816 strategy :
1917 fail-fast : false
2018 matrix :
2119 toolchain :
2220 - linux-gcc
2321 - macos-clang
2422 - windows-msvc
25-
2623 configuration :
2724 - Release
28-
2925 include :
3026 - toolchain : linux-gcc
3127 os : ubuntu-22.04
3228 compiler : gcc
3329 qt_version : " 6.3.0"
3430 modules : " "
3531 use_qt6 : " ON"
36-
3732 - toolchain : macos-clang
3833 os : macos-latest
3934 compiler : clang
4035 qt_version : " 6.7.1"
4136 modules : " "
4237 use_qt6 : " ON"
43-
4438 - toolchain : windows-msvc
4539 os : windows-latest
4640 compiler : msvc
4741 qt_version : " 5.15.2"
4842 modules : " "
4943 use_qt6 : " OFF"
50-
5144 - toolchain : windows-msvc
5245 os : windows-latest
5346 compiler : msvc
@@ -56,49 +49,54 @@ jobs:
5649 use_qt6 : " ON"
5750
5851 steps :
59- - name : Checkout Code
60- uses : actions/checkout@v2
61- with :
62- submodules : true
63-
64- - name : Install Qt
65- uses : jurplel/install-qt-action@v3
66- with :
67- version : ${{ matrix.qt_version }}
68- modules : ${{ matrix.modules }}
69-
70- - name : Setup (Linux)
71- if : startsWith (matrix.os, 'ubuntu')
72- run : |
73- sudo apt-get update
74- sudo apt-get install libxkbcommon-dev xvfb
75-
76- - name : Setup VS tools (Windows)
77- if : startsWith (matrix.os, 'windows')
78- uses : egor-tensin/vs-shell@v2
79- with :
80- arch : x64
81-
82- - name : Configure (${{ matrix.configuration }})
83- run : cmake -S . -Bbuild -DCMAKE_BUILD_TYPE=${{ matrix.configuration }} -DBUILD_DOCS=OFF -DUSE_QT6=${{ matrix.use_qt6 }}
84-
85- - name : Build with ${{ matrix.compiler }}
86- run : cmake --build build --config ${{ matrix.configuration }}
87-
88- - name : Run Tests (Linux)
89- if : startsWith (matrix.os, 'ubuntu')
90- run : |
91- cd build
92- xvfb-run -a ctest --output-on-failure --progress
93-
94- - name : Run Tests (macOS)
95- if : startsWith (matrix.os, 'macos')
96- run : |
97- cd build
98- ctest --output-on-failure --progress
99-
100- - name : Run Tests (Windows)
101- if : startsWith (matrix.os, 'windows')
102- run : |
103- cd build
104- ctest -C ${{ matrix.configuration }} --output-on-failure --progress
52+ - name : Checkout Code
53+ uses : actions/checkout@v4
54+ with :
55+ submodules : true
56+
57+ - name : Install Qt
58+ uses : jurplel/install-qt-action@v4
59+ with :
60+ version : ${{ matrix.qt_version }}
61+ modules : ${{ matrix.modules }}
62+ cache : ' true'
63+ cache-key-prefix : ' nodeeditor-qt-v2'
64+
65+ - name : Setup (Linux)
66+ if : startsWith(matrix.os, 'ubuntu')
67+ run : |
68+ sudo apt-get update
69+ sudo apt-get install libxkbcommon-dev xvfb
70+
71+ - name : Setup VS tools (Windows)
72+ if : startsWith(matrix.os, 'windows')
73+ uses : egor-tensin/vs-shell@v2
74+ with :
75+ arch : x64
76+
77+ - name : Clean build directory
78+ run : rm -rf build || true
79+
80+ - name : Configure (${{ matrix.configuration }})
81+ run : cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.configuration }} -DBUILD_DOCS=OFF -DUSE_QT6=${{ matrix.use_qt6 }}
82+
83+ - name : Build with ${{ matrix.compiler }}
84+ run : cmake --build build --config ${{ matrix.configuration }}
85+
86+ - name : Run Tests (Linux)
87+ if : startsWith(matrix.os, 'ubuntu')
88+ run : |
89+ cd build
90+ xvfb-run -a ctest --output-on-failure --progress
91+
92+ - name : Run Tests (macOS)
93+ if : startsWith(matrix.os, 'macos')
94+ run : |
95+ cd build
96+ ctest --output-on-failure --progress
97+
98+ - name : Run Tests (Windows)
99+ if : startsWith(matrix.os, 'windows')
100+ run : |
101+ cd build
102+ ctest -C ${{ matrix.configuration }} --output-on-failure --progress
0 commit comments