diff --git a/.github/workflows/CI-unixish-docker.yml b/.github/workflows/CI-unixish-docker.yml index a38feb452f0..ecbc36feb93 100644 --- a/.github/workflows/CI-unixish-docker.yml +++ b/.github/workflows/CI-unixish-docker.yml @@ -14,14 +14,14 @@ on: permissions: contents: read - + jobs: build_cmake: strategy: matrix: include: - - image: "ubuntu:24.04" + - image: "ubuntu:22.04" with_gui: true full_build: true - image: "ubuntu:25.10" @@ -32,7 +32,7 @@ jobs: full_build: false # FIXME: test-signalhandler.cpp fails to build since feenableexcept() is missing fail-fast: false # Prefer quick result - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 # TODO: is this actually applied to the guest? env: @@ -87,10 +87,10 @@ jobs: strategy: matrix: - image: ["ubuntu:24.04", "ubuntu:25.10", "alpine:3.23"] + image: ["ubuntu:25.10", "alpine:3.23"] fail-fast: false # Prefer quick result - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: ${{ matrix.image }} diff --git a/.github/workflows/CI-unixish.yml b/.github/workflows/CI-unixish.yml index cf555a8ecc6..d97d3ca504f 100644 --- a/.github/workflows/CI-unixish.yml +++ b/.github/workflows/CI-unixish.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -75,7 +75,10 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] + include: + - os: ubuntu-24.04 + latest: true fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -98,13 +101,13 @@ jobs: # TODO: bail out on warnings with latest GCC - name: Set up GCC uses: egor-tensin/setup-gcc@v1 - if: false # matrix.os == 'ubuntu-22.04' + if: false # matrix.os == 'ubuntu-24.04' with: version: 13 platform: x64 - name: Select compiler - if: false # matrix.os == 'ubuntu-22.04' + if: false # matrix.os == 'ubuntu-24.04' run: | echo "CXX=g++-13" >> $GITHUB_ENV @@ -152,12 +155,12 @@ jobs: cmake --build cmake.output --target install - name: Run CMake on ubuntu (no CLI) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | cmake -S . -B cmake.output_nocli -Werror=dev -DBUILD_TESTING=Off -DBUILD_CLI=Off - name: Run CMake on ubuntu (no CLI / with tests) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | # the test and CLI code are too intertwined so for now we need to reject that if cmake -S . -B cmake.output_nocli_tests -Werror=dev -DBUILD_TESTING=On -DBUILD_CLI=Off; then @@ -167,17 +170,17 @@ jobs: fi - name: Run CMake on ubuntu (no CLI / with GUI) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | cmake -S . -B cmake.output_nocli_gui -Werror=dev -DBUILD_TESTING=Off -DBUILD_CLI=Off -DBUILD_GUI=On - name: Run CMake on ubuntu (no GUI) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | cmake -S . -B cmake.output_nogui -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off - name: Run CMake on ubuntu (no GUI / with triage) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | # cannot build triage without GUI if cmake -S . -B cmake.output_nogui_triage -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off -DBUILD_TRIAGE=On; then @@ -187,7 +190,7 @@ jobs: fi - name: Run CMake on ubuntu (no CLI / no GUI) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | cmake -S . -B cmake.output_nocli_nogui -Werror=dev -DBUILD_TESTING=Off -DBUILD_GUI=Off @@ -195,7 +198,7 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] cxxstd: [14, 17, 20] # FIXME: macos-15 fails to compile with C++20 # @@ -258,7 +261,7 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -292,7 +295,7 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -326,7 +329,7 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] fail-fast: false # Prefer quick result runs-on: ${{ matrix.os }} @@ -409,7 +412,7 @@ jobs: build_cmake_minimum: # TODO: move to docker workflow? - runs-on: ubuntu-22.04 # use the oldest available runner + runs-on: ubuntu-24.04 # use the oldest available runner env: CMAKE_VERSION: 3.22 @@ -447,9 +450,11 @@ jobs: strategy: matrix: - os: [ubuntu-22.04, macos-15] + os: [ubuntu-24.04, macos-15] include: - xdist_n: auto + - os: ubuntu-24.04 + latest: true # FIXME: test_color_tty fails with xdist - see #13278 - os: macos-15 xdist_n: '1' @@ -474,8 +479,8 @@ jobs: sudo apt-get install libxml2-utils # packages for strict cfg checks - - name: Install missing software on ubuntu 22.04 (cfg) - if: matrix.os == 'ubuntu-22.04' + - name: Install missing software on ubuntu (cfg) + if: matrix.latest run: | 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 @@ -568,12 +573,12 @@ jobs: TEST_CPPCHECK_INJECT_BUILDDIR: injected - name: Run cfg tests - if: matrix.os != 'ubuntu-22.04' + if: ${{ !matrix.latest }} run: | make -j$(nproc) checkcfg - name: Run cfg tests (strict) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | make -j$(nproc) checkcfg env: @@ -649,7 +654,7 @@ jobs: # TODO: run with "-n auto" when misra_test.py can be run in parallel - name: test addons (Python) - if: matrix.os != 'ubuntu-22.04' + if: matrix.os != 'ubuntu-24.04' run: | python3 -m pytest -Werror --strict-markers -vv -n 1 addons/test env: @@ -658,20 +663,20 @@ jobs: # TODO: run with "-n auto" when misra_test.py can be run in parallel # we cannot specify -Werror since xml/etree/ElementTree.py in Python 3.10 contains an unclosed file - name: test addons (Python) - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | python3 -m pytest --strict-markers -vv -n 1 addons/test env: PYTHONPATH: ./addons - name: Build democlient - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | 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" g++ $warnings -c -Ilib -Iexternals/tinyxml2 democlient/democlient.cpp - name: Test disabled executors - if: matrix.os == 'ubuntu-22.04' + if: matrix.latest run: | g++ -Ilib -c cli/threadexecutor.cpp -DDISALLOW_THREAD_EXECUTOR test -z "$(nm threadexecutor.o)" @@ -700,7 +705,7 @@ jobs: selfcheck: needs: build # wait for all tests to be successful first - runs-on: ubuntu-22.04 # run on the latest image only + runs-on: ubuntu-24.04 # run on the latest image only steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/buildman.yml b/.github/workflows/buildman.yml index b0b399dd851..c2a2ed4e1ea 100644 --- a/.github/workflows/buildman.yml +++ b/.github/workflows/buildman.yml @@ -44,7 +44,7 @@ jobs: path: output manpage: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml index c4f8cc0cf6b..f449fae68af 100644 --- a/.github/workflows/clang-tidy.yml +++ b/.github/workflows/clang-tidy.yml @@ -21,7 +21,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: QT_VERSION: 6.10.0 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 12e758d2c9e..d94be9e5241 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -18,7 +18,7 @@ permissions: jobs: analyze: name: Analyze - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: security-events: write @@ -36,7 +36,7 @@ jobs: uses: actions/checkout@v4 with: persist-credentials: false - + # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v3 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 13f56172a80..43b7a36754a 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index fd491c0ec0e..3f6c0184615 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -18,7 +18,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: UNCRUSTIFY_VERSION: 0.80.1 diff --git a/.github/workflows/iwyu.yml b/.github/workflows/iwyu.yml index ed6971128f5..9fd836a4bc6 100644 --- a/.github/workflows/iwyu.yml +++ b/.github/workflows/iwyu.yml @@ -17,10 +17,10 @@ jobs: matrix: # "opensuse/tumbleweed:latest" / "fedora:rawhide" / "debian:unstable" / "archlinux:latest" include: - - os: ubuntu-22.04 + - os: ubuntu-24.04 image: "fedora:rawhide" stdlib: libstdc++ - - os: ubuntu-22.04 + - os: ubuntu-24.04 image: "fedora:rawhide" stdlib: libc++ - os: macos-26 @@ -191,7 +191,7 @@ jobs: use_libcxx: On fail-fast: false - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: ${{ github.repository_owner == 'danmar' }} env: diff --git a/.github/workflows/sanitizers.yml b/.github/workflows/sanitizers.yml index a5034f393a7..657ae66f343 100644 --- a/.github/workflows/sanitizers.yml +++ b/.github/workflows/sanitizers.yml @@ -39,7 +39,7 @@ jobs: run_selfcheck: true fail-fast: false - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: QT_VERSION: 6.10.0 diff --git a/.github/workflows/scriptcheck.yml b/.github/workflows/scriptcheck.yml index 844b1d5c2f3..e6f309f73ed 100644 --- a/.github/workflows/scriptcheck.yml +++ b/.github/workflows/scriptcheck.yml @@ -18,7 +18,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -45,7 +45,7 @@ jobs: scriptcheck: needs: build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: python-version: [3.7, 3.8, 3.9, '3.10', '3.11', '3.12', '3.13', '3.14'] @@ -203,7 +203,7 @@ jobs: dmake: strategy: matrix: - os: [ubuntu-22.04, macos-15, windows-2025] + os: [ubuntu-24.04, macos-15, windows-2025] fail-fast: false runs-on: ${{ matrix.os }} diff --git a/.github/workflows/selfcheck.yml b/.github/workflows/selfcheck.yml index ff112927598..924ec9e9dbd 100644 --- a/.github/workflows/selfcheck.yml +++ b/.github/workflows/selfcheck.yml @@ -18,7 +18,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: QT_VERSION: 6.10.0 diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml index 9fad536ca79..aae5ad45200 100644 --- a/.github/workflows/valgrind.yml +++ b/.github/workflows/valgrind.yml @@ -18,7 +18,7 @@ permissions: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4