Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e9a1e17
chore: use CPM for dependencies
daantimmer Jul 21, 2026
963d80b
fix: correct CUCUMBER_GHERKIN_TAG_DIGEST format and refactor ccr_reso…
daantimmer Jul 21, 2026
b70ac5e
refactor: simplify dependency declarations using ccr_dependency macro
daantimmer Jul 21, 2026
cc8c4d3
fix: uncomment CPMUsePackageLock to enable package locking
daantimmer Jul 21, 2026
0df8ec8
fix: ensure compile warnings are treated as errors in standalone mode
daantimmer Jul 21, 2026
ffbdb65
fix: update conditions for sanitizer flags and warning errors in top-…
daantimmer Jul 21, 2026
9622e5c
fix: add caching for CPM packages and ccache in CI workflows
daantimmer Jul 21, 2026
ef4b5de
Potential fix for pull request finding
daantimmer Jul 21, 2026
f0fdddc
Potential fix for pull request finding
daantimmer Jul 21, 2026
c558b66
Potential fix for pull request finding
daantimmer Jul 21, 2026
e7aa730
fix: add logging for current and URI paths in BaseCompatibility
daantimmer Jul 21, 2026
acace83
feat: add verbose output option and logging for step registration
daantimmer Jul 21, 2026
b9cccbf
feat: add logging for source location in DefinitionRegistration and S…
daantimmer Jul 21, 2026
81bf8ef
fix: update CMakeLists.txt to use absolute paths for source files and…
daantimmer Jul 21, 2026
af486c0
fix: restore absolute path normalization for source files in CMakeLis…
daantimmer Jul 21, 2026
1d64c82
feat: add compile definitions for source and binary directories in CM…
daantimmer Jul 21, 2026
00ab02e
refactor: remove compile definitions for source and binary directorie…
daantimmer Jul 21, 2026
318583c
feat: add compile definitions for CCR_BINARY_DIR in compatibility.bas…
daantimmer Jul 21, 2026
81c758b
use absolute paths for attachments
daantimmer Jul 23, 2026
552147f
Merge branch 'main' into feature/use-CPM-for-dependencies
daantimmer Jul 23, 2026
adf089a
resolve robot comments
daantimmer Jul 23, 2026
2743412
don't use cache (cpm/ccache) for release builds
daantimmer Jul 23, 2026
184d008
ci: update caching strategy for CPM packages and ccache
daantimmer Jul 23, 2026
015731c
use re-usable actions for building
daantimmer Jul 23, 2026
cef6726
dont save cpm cache when restored
daantimmer Jul 23, 2026
345a7e2
use resuable buildflow
daantimmer Jul 23, 2026
c06c774
resolve robot comments
daantimmer Jul 24, 2026
dd48177
resolve robot comments
daantimmer Jul 24, 2026
6ee708e
remove ref from cache-key, remove ccache env variables
daantimmer Jul 24, 2026
e5833bc
update action inputs: make use-ccache required and ccache-key optional
daantimmer Jul 24, 2026
9c73f68
Don't run CodeQL in a container
daantimmer Jul 24, 2026
bc0f286
Potential fix for pull request finding
daantimmer Jul 24, 2026
17d003e
Merge branch 'main' into feature/use-CPM-for-dependencies
daantimmer Jul 24, 2026
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
3 changes: 3 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,8 @@
"github.vscode-github-actions"
]
}
},
"remoteEnv": {
"CPM_SOURCE_CACHE": "/root/cache/.cpm"
}
}
55 changes: 55 additions & 0 deletions .github/actions/build-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
name: Build and Test
description: Builds and tests the project using CMake

inputs:
cpm-source-cache:
description: Path to the CPM source cache directory
required: true
use-ccache:
description: Use ccache to speed up builds
required: true
ccache-key:
description: Key for ccache cache
required: false
configure-preset:
description: CMake configure preset to use
required: true
build-preset:
description: CMake build preset to use
required: true
test-preset:
description: CMake test preset to use
required: true

runs:
using: composite
steps:
- name: Restore CPM packages cache
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: cache-cpm
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}

- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
if: ${{ inputs.use-ccache == 'true' }}
with:
key: ${{ inputs.ccache-key }}
max-size: 2G
save: ${{ !startsWith(github.ref, 'refs/tags/') }}

- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9
with:
configurePreset: "${{ inputs.configure-preset }}"
buildPreset: "${{ inputs.build-preset }}"
testPreset: "${{ inputs.test-preset }}"
env:
CPM_SOURCE_CACHE: ${{ inputs.cpm-source-cache }}

- name: Save CPM packages cache
if: ${{ !startsWith(github.ref, 'refs/tags/') && steps.cache-cpm.outputs.cache-hit != 'true' }}
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}
52 changes: 52 additions & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: Build
description: Builds the project using CMake

inputs:
cpm-source-cache:
description: Path to the CPM source cache directory
required: true
use-ccache:
description: Use ccache to speed up builds
required: true
ccache-key:
description: Key for ccache cache
required: false
configure-preset:
description: CMake configure preset to use
required: true
build-preset:
description: CMake build preset to use
required: true

runs:
using: composite
steps:
- name: Restore CPM packages cache
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: cache-cpm
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}

- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
if: ${{ inputs.use-ccache == 'true' }}
with:
key: ${{ inputs.ccache-key }}
max-size: 2G
save: ${{ !startsWith(github.ref, 'refs/tags/') }}
env:
CPM_SOURCE_CACHE: ${{ inputs.cpm-source-cache }}

- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9
with:
configurePreset: "${{ inputs.configure-preset }}"
buildPreset: "${{ inputs.build-preset }}"


Comment thread
daantimmer marked this conversation as resolved.
- name: Save CPM packages cache
if: ${{ !startsWith(github.ref, 'refs/tags/') && steps.cache-cpm.outputs.cache-hit != 'true' }}
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}
47 changes: 47 additions & 0 deletions .github/actions/workflow/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
name: Workflow Action
description: Uses a workflow preset for CMake

inputs:
cpm-source-cache:
description: Path to the CPM source cache directory
required: true
use-ccache:
description: Use ccache to speed up builds
required: true
ccache-key:
description: Key for ccache cache
required: false
workflow-preset:
description: CMake workflow preset to use
required: true

runs:
using: composite
steps:
- name: Restore CPM packages cache
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: cache-cpm
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}

- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
if: ${{ inputs.use-ccache == 'true' }}
with:
key: ${{ inputs.ccache-key }}
max-size: 2G
save: ${{ !startsWith(github.ref, 'refs/tags/') }}

- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9
with:
workflowPreset: "${{ inputs.workflow-preset }}"
env:
CPM_SOURCE_CACHE: ${{ inputs.cpm-source-cache }}

- name: Save CPM packages cache
if: ${{ !startsWith(github.ref, 'refs/tags/') && steps.cache-cpm.outputs.cache-hit != 'true' }}
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ inputs.cpm-source-cache }}
key: cpm-${{ hashFiles('cmake/dependencies.cpm.cmake', 'cmake/package-lock.cmake') }}
50 changes: 30 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ concurrency:

env:
GTEST_COLOR: 1
CPM_SOURCE_CACHE: ${{ github.workspace }}/.cpm

jobs:
build-in-devcontainer:
Expand All @@ -33,27 +34,31 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- if: ${{ matrix.target == 'Windows' }}
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: cache-winsdk
with:
path: /winsdk
key: cache-winsdk-10.0.26100-14.43.17.13

- if: ${{ matrix.target == 'Windows' && steps.cache-winsdk.outputs.cache-hit != 'true' }}
run: ./get-winsdk.sh

- if: ${{ matrix.target == 'Windows' && steps.cache-winsdk.outputs.cache-hit != 'true' && github.event_name != 'pull_request' }}
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: /winsdk
key: cache-winsdk-10.0.26100-14.43.17.13
- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}-${{ matrix.target }}
max-size: 2G
- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9

- name: Build
uses: ./.github/actions/build
with:
configurePreset: "${{ matrix.target}}"
buildPreset: "${{ matrix.target}}-Release"
cpm-source-cache: ${{ env.CPM_SOURCE_CACHE }}
use-ccache: true
ccache-key: ${{ github.job }}-${{ matrix.target }}
configure-preset: "${{ matrix.target}}"
build-preset: "${{ matrix.target}}-Release"

test-linux:
name: Acceptance Test on Linux
Expand All @@ -68,16 +73,19 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}
max-size: 2G
- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9

- name: Build
uses: ./.github/actions/build
with:
configurePreset: "Host"
buildPreset: "Host-Debug"
cpm-source-cache: ${{ env.CPM_SOURCE_CACHE }}
use-ccache: true
ccache-key: ${{ github.job }}
configure-preset: "Host"
Comment thread
daantimmer marked this conversation as resolved.
build-preset: "Host-Debug"

- run: |
bats --formatter junit cucumber_cpp/acceptance_test/test.bats | tee test-report.xml

- uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
if: always()
with:
Expand All @@ -97,13 +105,15 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}-${{ matrix.os }}-${{ matrix.type }}${{ matrix.preset_suffix }}
max-size: 2G
- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9

- name: Build and test
uses: ./.github/actions/workflow
with:
workflowPreset: "${{ matrix.os }}-Debug-${{ matrix.type }}${{ matrix.preset_suffix }}"
cpm-source-cache: ${{ env.CPM_SOURCE_CACHE }}
use-ccache: ${{ !startsWith(matrix.os, 'windows') }}
ccache-key: ccache-${{ github.job }}-${{ matrix.os }}-${{ matrix.version }}-${{ matrix.type }}${{ matrix.preset_suffix }}
workflow-preset: "${{ matrix.os }}-Debug-${{ matrix.type }}${{ matrix.preset_suffix }}"

- name: Upload test logs
if: ${{ failure() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
Expand Down
39 changes: 22 additions & 17 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

env:
GTEST_COLOR: 1
CPM_SOURCE_CACHE: ${{ github.workspace }}/.cpm

jobs:
sonar:
name: SonarCloud
Expand All @@ -27,17 +31,15 @@ jobs:
fetch-depth: 0 # Disable shallow clone to enable blame information
persist-credentials: false

- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}
max-size: 2G

- name: Build for coverage
uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9
- name: Build
uses: ./.github/actions/build-test
with:
configurePreset: "Coverage"
buildPreset: "Coverage"
testPreset: "Coverage"
cpm-source-cache: ${{ env.CPM_SOURCE_CACHE }}
use-ccache: true
ccache-key: ${{ github.job }}
configure-preset: "Coverage"
build-preset: "Coverage"
test-preset: "Coverage"
env:
GTEST_OUTPUT: "xml:${{ github.workspace }}/testresults/"

Expand Down Expand Up @@ -66,21 +68,24 @@ jobs:
codeql:
name: CodeQL
runs-on: ubuntu-latest
container: ghcr.io/philips-software/amp-devcontainer-cpp:8.0.1@sha256:489772f6e442f93804c0ccdb8879d84fbb1a70a203e8a2885ec97b39858bddee
permissions:
security-events: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}

- uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
languages: cpp
- uses: lukka/run-cmake@5d55ea7949e25f69f0ecb516d8d572297e03a956 # v10.9

- name: Build
uses: ./.github/actions/build
with:
configurePreset: "Host"
buildPreset: "Host-Debug"
cpm-source-cache: ${{ env.CPM_SOURCE_CACHE }}
use-ccache: true
ccache-key: ${{ github.job }}
configure-preset: "Host"
build-preset: "Host-Debug"

- uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
Loading
Loading