Skip to content

fixed #13788 - CI-unixish-docker.yml: replaced ubuntu:24.10 with ubuntu:25.04 / cleanups #7472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 4 additions & 19 deletions .github/workflows/CI-unixish-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,12 @@ jobs:

strategy:
matrix:
image: ["ubuntu:24.04", "ubuntu:24.10"]
include:
- build_gui: false
- image: "ubuntu:24.04"
build_gui: true
- image: "ubuntu:24.10"
build_gui: true
image: ["ubuntu:24.04", "ubuntu:25.04"]
fail-fast: false # Prefer quick result

runs-on: ubuntu-22.04

# TODO: is this actually applied to the guest?
env:
# TODO: figure out why there are cache misses with PCH enabled
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It turns out this was working just fine in this workflow although we forgot to disable the precompiled headers. So we should be able to enable them in the other jobs as well.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first run also got cache hits which was unexpected. Turns out we are lacking the branch name in the cache key which causes it to be used across all builds (IIRC I assumed the cache is limited to the branch). So any PR will affect the cache of main builds.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also create a new cache with each build because it automatically appends a timestamp. That is done to prevent issues with concurrent access (see hendrikmuhs/ccache-action#117). It seems that might not be necessary for branches but since multiple pushes trigger multiple builds we cannot disable this. That would require us to cancel the already running builds (see https://trac.cppcheck.net/ticket/12325).

CCACHE_SLOPPINESS: pch_defines,time_macros

container:
Expand All @@ -51,7 +43,6 @@ jobs:
apt-get install -y cmake g++ make libxml2-utils libpcre3-dev

- name: Install missing software (gui) on latest ubuntu
if: matrix.build_gui
run: |
apt-get install -y qt6-base-dev qt6-charts-dev qt6-tools-dev

Expand All @@ -62,18 +53,12 @@ jobs:
with:
key: ${{ github.workflow }}-${{ matrix.image }}

- name: CMake build
if: ${{ !matrix.build_gui }}
- name: Run CMake (with GUI)
run: |
mkdir cmake.output
cd cmake.output
cmake -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache ..
cmake --build . -- -j$(nproc)
cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache

- name: CMake build (with GUI)
if: matrix.build_gui
run: |
cmake -S . -B cmake.output -G "Unix Makefiles" -DHAVE_RULES=On -DBUILD_TESTS=On -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DBUILD_TRIAGE=On -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
cmake --build cmake.output -- -j$(nproc)

- name: Run CMake test
Expand All @@ -84,7 +69,7 @@ jobs:

strategy:
matrix:
image: ["ubuntu:24.04", "ubuntu:24.10"]
image: ["ubuntu:24.04", "ubuntu:25.04"]
fail-fast: false # Prefer quick result

runs-on: ubuntu-22.04
Expand Down