2020
2121 strategy :
2222 matrix :
23- os : [ubuntu-22 .04, macos-15]
23+ os : [ubuntu-24 .04, macos-15]
2424 fail-fast : false # Prefer quick result
2525
2626 runs-on : ${{ matrix.os }}
7575
7676 strategy :
7777 matrix :
78- os : [ubuntu-22.04, macos-15]
78+ os : [ubuntu-24.04, macos-15]
79+ include :
80+ - os : ubuntu-24.04
81+ latest : true
7982 fail-fast : false # Prefer quick result
8083
8184 runs-on : ${{ matrix.os }}
@@ -98,13 +101,13 @@ jobs:
98101 # TODO: bail out on warnings with latest GCC
99102 - name : Set up GCC
100103 uses : egor-tensin/setup-gcc@v1
101- if : false # matrix.os == 'ubuntu-22 .04'
104+ if : false # matrix.os == 'ubuntu-24 .04'
102105 with :
103106 version : 13
104107 platform : x64
105108
106109 - name : Select compiler
107- if : false # matrix.os == 'ubuntu-22 .04'
110+ if : false # matrix.os == 'ubuntu-24 .04'
108111 run : |
109112 echo "CXX=g++-13" >> $GITHUB_ENV
110113
@@ -152,12 +155,12 @@ jobs:
152155 cmake --build cmake.output --target install
153156
154157 - name : Run CMake on ubuntu (no CLI)
155- if : matrix.os == 'ubuntu-22.04'
158+ if : matrix.latest
156159 run : |
157160 cmake -S . -B cmake.output_nocli -Werror=dev -DBUILD_TESTING=Off -DBUILD_CLI=Off
158161
159162 - name : Run CMake on ubuntu (no CLI / with tests)
160- if : matrix.os == 'ubuntu-22.04'
163+ if : matrix.latest
161164 run : |
162165 # the test and CLI code are too intertwined so for now we need to reject that
163166 if cmake -S . -B cmake.output_nocli_tests -Werror=dev -DBUILD_TESTING=On -DBUILD_CLI=Off; then
@@ -167,17 +170,17 @@ jobs:
167170 fi
168171
169172 - name : Run CMake on ubuntu (no CLI / with GUI)
170- if : matrix.os == 'ubuntu-22.04'
173+ if : matrix.latest
171174 run : |
172175 cmake -S . -B cmake.output_nocli_gui -Werror=dev -DBUILD_TESTING=Off -DBUILD_CLI=Off -DBUILD_GUI=On
173176
174177 - name : Run CMake on ubuntu (no GUI)
175- if : matrix.os == 'ubuntu-22.04'
178+ if : matrix.latest
176179 run : |
177180 cmake -S . -B cmake.output_nogui -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off
178181
179182 - name : Run CMake on ubuntu (no GUI / with triage)
180- if : matrix.os == 'ubuntu-22.04'
183+ if : matrix.latest
181184 run : |
182185 # cannot build triage without GUI
183186 if cmake -S . -B cmake.output_nogui_triage -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off -DBUILD_TRIAGE=On; then
@@ -187,15 +190,15 @@ jobs:
187190 fi
188191
189192 - name : Run CMake on ubuntu (no CLI / no GUI)
190- if : matrix.os == 'ubuntu-22.04'
193+ if : matrix.latest
191194 run : |
192195 cmake -S . -B cmake.output_nocli_nogui -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off
193196
194197 build_cmake_cxxstd :
195198
196199 strategy :
197200 matrix :
198- os : [ubuntu-22 .04, macos-15]
201+ os : [ubuntu-24 .04, macos-15]
199202 cxxstd : [14, 17, 20]
200203 # FIXME: macos-15 fails to compile with C++20
201204 #
@@ -258,7 +261,7 @@ jobs:
258261
259262 strategy :
260263 matrix :
261- os : [ubuntu-22 .04, macos-15]
264+ os : [ubuntu-24 .04, macos-15]
262265 fail-fast : false # Prefer quick result
263266
264267 runs-on : ${{ matrix.os }}
@@ -292,7 +295,7 @@ jobs:
292295
293296 strategy :
294297 matrix :
295- os : [ubuntu-22 .04, macos-15]
298+ os : [ubuntu-24 .04, macos-15]
296299 fail-fast : false # Prefer quick result
297300
298301 runs-on : ${{ matrix.os }}
@@ -326,7 +329,7 @@ jobs:
326329
327330 strategy :
328331 matrix :
329- os : [ubuntu-22 .04, macos-15]
332+ os : [ubuntu-24 .04, macos-15]
330333 fail-fast : false # Prefer quick result
331334
332335 runs-on : ${{ matrix.os }}
@@ -409,7 +412,7 @@ jobs:
409412
410413 build_cmake_minimum : # TODO: move to docker workflow?
411414
412- runs-on : ubuntu-22 .04 # use the oldest available runner
415+ runs-on : ubuntu-24 .04 # use the oldest available runner
413416
414417 env :
415418 CMAKE_VERSION : 3.22
@@ -447,9 +450,11 @@ jobs:
447450
448451 strategy :
449452 matrix :
450- os : [ubuntu-22 .04, macos-15]
453+ os : [ubuntu-24 .04, macos-15]
451454 include :
452455 - xdist_n : auto
456+ - os : ubuntu-24.04
457+ latest : true
453458 # FIXME: test_color_tty fails with xdist - see #13278
454459 - os : macos-15
455460 xdist_n : ' 1'
@@ -474,8 +479,8 @@ jobs:
474479 sudo apt-get install libxml2-utils
475480
476481 # packages for strict cfg checks
477- - name : Install missing software on ubuntu 22.04 (cfg)
478- if : matrix.os == 'ubuntu-22.04'
482+ - name : Install missing software on ubuntu (cfg)
483+ if : matrix.latest
479484 run : |
480485 sudo apt-get install libcairo2-dev libcurl4-openssl-dev liblua5.3-dev libssl-dev libsqlite3-dev libcppunit-dev libsigc++-2.0-dev libgtk-3-dev libboost-all-dev libselinux-dev libwxgtk3.0-gtk3-dev xmlstarlet qtbase5-dev
481486
@@ -568,12 +573,12 @@ jobs:
568573 TEST_CPPCHECK_INJECT_BUILDDIR : injected
569574
570575 - name : Run cfg tests
571- if : matrix.os != 'ubuntu-22.04'
576+ if : ${{ !matrix.latest }}
572577 run : |
573578 make -j$(nproc) checkcfg
574579
575580 - name : Run cfg tests (strict)
576- if : matrix.os == 'ubuntu-22.04'
581+ if : matrix.latest
577582 run : |
578583 make -j$(nproc) checkcfg
579584 env :
@@ -649,7 +654,7 @@ jobs:
649654
650655 # TODO: run with "-n auto" when misra_test.py can be run in parallel
651656 - name : test addons (Python)
652- if : matrix.os != 'ubuntu-22 .04'
657+ if : matrix.os != 'ubuntu-24 .04'
653658 run : |
654659 python3 -m pytest -Werror --strict-markers -vv -n 1 addons/test
655660 env :
@@ -658,20 +663,20 @@ jobs:
658663 # TODO: run with "-n auto" when misra_test.py can be run in parallel
659664 # we cannot specify -Werror since xml/etree/ElementTree.py in Python 3.10 contains an unclosed file
660665 - name : test addons (Python)
661- if : matrix.os == 'ubuntu-22.04'
666+ if : matrix.latest
662667 run : |
663668 python3 -m pytest --strict-markers -vv -n 1 addons/test
664669 env :
665670 PYTHONPATH : ./addons
666671
667672 - name : Build democlient
668- if : matrix.os == 'ubuntu-22.04'
673+ if : matrix.latest
669674 run : |
670675 warnings="-pedantic -Wall -Wextra -Wcast-qual -Wno-deprecated-declarations -Wfloat-equal -Wmissing-declarations -Wmissing-format-attribute -Wno-long-long -Wpacked -Wredundant-decls -Wundef -Wno-shadow -Wno-missing-field-initializers -Wno-missing-braces -Wno-sign-compare -Wno-multichar"
671676 g++ $warnings -c -Ilib -Iexternals/tinyxml2 democlient/democlient.cpp
672677
673678 - name : Test disabled executors
674- if : matrix.os == 'ubuntu-22.04'
679+ if : matrix.latest
675680 run : |
676681 g++ -Ilib -c cli/threadexecutor.cpp -DDISALLOW_THREAD_EXECUTOR
677682 test -z "$(nm threadexecutor.o)"
@@ -700,7 +705,7 @@ jobs:
700705 selfcheck :
701706 needs : build # wait for all tests to be successful first
702707
703- runs-on : ubuntu-22 .04 # run on the latest image only
708+ runs-on : ubuntu-24 .04 # run on the latest image only
704709
705710 steps :
706711 - uses : actions/checkout@v4
0 commit comments