2020
2121 strategy :
2222 matrix :
23- image : ["ubuntu:24.04", "ubuntu:25.10"]
23+ include :
24+ - image : " ubuntu:24.04"
25+ with_gui : true
26+ full_build : true
27+ - image : " ubuntu:25.10"
28+ with_gui : true
29+ full_build : true
30+ - image : " alpine:3.23"
31+ with_gui : false # it appears FindQt6.cmake is not provided by any package
32+ full_build : false # FIXME: test-signalhandler.cpp fails to build since feenableexcept() is missing
2433 fail-fast : false # Prefer quick result
2534
2635 runs-on : ubuntu-22.04
4554 apt-get install -y cmake g++ make libxml2-utils libpcre3-dev
4655
4756 - name : Install missing software (gui) on latest ubuntu
57+ if : contains(matrix.image, 'ubuntu')
4858 run : |
4959 apt-get install -y qt6-base-dev qt6-charts-dev qt6-tools-dev
5060
61+ - name : Install missing software on Alpine
62+ if : contains(matrix.image, 'alpine')
63+ run : |
64+ apk add cmake make g++ pcre-dev
65+
5166 # needs to be called after the package installation since
5267 # - it doesn't call "apt-get update"
5368 - name : ccache
5772
5873 - name : Run CMake
5974 run : |
60- cmake -S . -B cmake.output -Werror=dev -DHAVE_RULES=On -DBUILD_TESTING=On -DBUILD_GUI=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_COMPILE_WARNING_AS_ERROR=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
75+ cmake -S . -B cmake.output -Werror=dev -DHAVE_RULES=On -DBUILD_TESTING=On -DBUILD_GUI=${{ matrix.with_gui }} -DWITH_QCHART=On -DBUILD_TRIAGE=${{ matrix.with_gui }} -DCMAKE_COMPILE_WARNING_AS_ERROR=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
6176
62- - name : CMake build (with GUI)
77+ - name : CMake build
78+ if : matrix.full_build
6379 run : |
6480 cmake --build cmake.output -- -j$(nproc)
6581
7187
7288 strategy :
7389 matrix :
74- image : ["ubuntu:24.04", "ubuntu:25.10"]
90+ image : ["ubuntu:24.04", "ubuntu:25.10", "alpine:3.23" ]
7591 fail-fast : false # Prefer quick result
7692
7793 runs-on : ubuntu-22.04
@@ -90,21 +106,28 @@ jobs:
90106 apt-get update
91107 apt-get install -y g++ make python3 libxml2-utils libpcre3-dev
92108
109+ - name : Install missing software on Alpine
110+ if : contains(matrix.image, 'alpine')
111+ run : |
112+ apk add make g++ pcre-dev bash python3 libxml2-utils
113+
93114 # needs to be called after the package installation since
94115 # - it doesn't call "apt-get update"
95116 - name : ccache
96117 uses : hendrikmuhs/ccache-action@v1.2
97118 with :
98119 key : ${{ github.workflow }}-${{ matrix.image }}
99120
121+ # /usr/lib/ccache/bin - Alpine Linux
122+
100123 - name : Build cppcheck
101124 run : |
102- export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
125+ export PATH="/usr/lib/ccache/bin:/usr/lib/ccache :/usr/local/opt/ccache/libexec:$PATH"
103126 make -j$(nproc) HAVE_RULES=yes CXXOPTS="-Werror"
104127
105128 - name : Build test
106129 run : |
107- export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
130+ export PATH="/usr/lib/ccache/bin:/usr/lib/ccache :/usr/local/opt/ccache/libexec:$PATH"
108131 make -j$(nproc) HAVE_RULES=yes CXXOPTS="-Werror" testrunner
109132
110133 - name : Run test
0 commit comments