Skip to content

build(deps-dev): bump conan from 2.3.0 to 2.3.1 #1031

build(deps-dev): bump conan from 2.3.0 to 2.3.1

build(deps-dev): bump conan from 2.3.0 to 2.3.1 #1031

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
env:
VSCMD_SKIP_SENDTELEMETRY: 1
HOMEBREW_NO_AUTO_UPDATE: 1
CMAKE_GENERATOR: Ninja
jobs:
build_linux:
name: ${{ matrix.config.name }} ${{ matrix.build.type }}
runs-on: ubuntu-24.04
strategy:
matrix:
build:
- {
type: Debug,
preset: conan-debug
}
- {
type: RelWithDebInfo,
preset: conan-relwithdebinfo
}
config:
- {
name: 'Linux GCC',
cc: gcc-14,
cxx: g++-14,
gcov: gcov-14,
profiles: '-pr:h conan/gcc14'
}
- {
name: 'Linux Clang',
cc: clang-18,
cxx: clang++-18,
gcov: llvm-cov-18 gcov,
profiles: '-pr:h conan/clang18 -pr:h conan/libc++'
}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt install libc++-18-dev libc++abi-18-dev
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-18 100
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install cppcheck
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> ${{ github.path }}
echo "CONAN_HOME=${{ runner.temp }}/.conan2" >> ${{ github.env }}
pipx install poetry
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: poetry
- name: Install Python dependencies
run: |
poetry install
poetry run conan profile detect
- name: Cache Conan packages
uses: actions/cache@v4
with:
path: ${{ env.CONAN_HOME }}/p
key: conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-${{ hashFiles('conanfile.py') }}
restore-keys: |
conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-
conan-${{ runner.os }}-${{ matrix.config.cc }}-
conan-${{ runner.os }}-
- name: Install Conan packages
run: >
poetry run conan install .
-b missing -pr:b default -pr:h default ${{ matrix.config.profiles }}
-c:h tools.cmake.cmaketoolchain:generator=Ninja
-c:h tools.build:compiler_executables="{\"c\": \"${{ matrix.config.cc }}\", \"cpp\": \"${{ matrix.config.cxx }}\"}"
-s:h build_type=${{ matrix.build.type }}
- name: Configure
run: >
poetry run cmake --preset ${{ matrix.build.preset }}
-D ENABLE_COVERAGE:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_ASAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_UBSAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_LSAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_CPPCHECK:BOOL=TRUE
-D ENABLE_CLANG_TIDY:BOOL=${{ contains(matrix.config.cc, 'clang') }}
-D ENABLE_HARDENINGS:BOOL=TRUE
-D ENABLE_FORTIFY_SOURCE:BOOL=${{ matrix.build.type != 'Debug' }}
- name: Build
run: cmake --build --preset ${{ matrix.build.preset }}
- name: Run tests
run: ctest --preset ${{ matrix.build.preset }}
- name: Collect test coverage
if: matrix.build.type == 'Debug'
env:
GCOV: ${{ matrix.config.gcov }}
run: poetry run gcovr
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: ${{ !cancelled() }}
with:
report_paths: '**/junit-reports/*.xml'
annotate_only: true
fail_on_failure: true
- name: Publish test coverage to codecov
if: matrix.build.type == 'Debug'
uses: codecov/codecov-action@v4
with:
flags: linux-${{ matrix.config.cc }}
name: ${{ matrix.config.name }}
files: coverage/cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
build_macos:
name: ${{ matrix.config.name }} ${{ matrix.build.type }}
runs-on: macos-14
strategy:
matrix:
build:
- {
type: Debug,
preset: conan-debug
}
- {
type: RelWithDebInfo,
preset: conan-relwithdebinfo
}
config:
- {
name: 'Macos Clang',
cc: $(brew --prefix llvm@17)/bin/clang,
cxx: $(brew --prefix llvm@17)/bin/clang++,
profiles: '-pr:h conan/clang17 -pr:h conan/libc++'
}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
pipx install poetry
echo "CONAN_HOME=${{ runner.temp }}/.conan2" >> ${{ github.env }}
brew install llvm@17
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: poetry
- name: Install Python dependencies
run: |
poetry install
poetry run conan profile detect
- name: Cache Conan packages
uses: actions/cache@v4
with:
path: ${{ env.CONAN_HOME }}/p
key: conan-${{ runner.os }}-clang-${{ matrix.build.type }}-${{ hashFiles('conanfile.py') }}
restore-keys: |
conan-${{ runner.os }}-clang-${{ matrix.build.type }}-
conan-${{ runner.os }}-clang-
conan-${{ runner.os }}-
- name: Install Conan packages
run: >
poetry run conan install .
-b missing -pr:b default -pr:h default ${{ matrix.config.profiles }}
-c:h tools.cmake.cmaketoolchain:generator=Ninja
-c:h tools.build:compiler_executables="{\"c\": \"${{ matrix.config.cc }}\", \"cpp\": \"${{ matrix.config.cxx }}\"}"
-s:h build_type=${{ matrix.build.type }}
- name: Configure
run: >
poetry run cmake --preset ${{ matrix.build.preset }}
-D ENABLE_COVERAGE:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_ASAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_UBSAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_LSAN:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_HARDENINGS:BOOL=TRUE
-D ENABLE_FORTIFY_SOURCE:BOOL=${{ matrix.build.type != 'Debug' }}
- name: Build
run: cmake --build --preset ${{ matrix.build.preset }}
- name: Run tests
run: ctest --preset ${{ matrix.build.preset }}
- name: Collect test coverage
if: matrix.build.type == 'Debug'
run: GCOV="$(brew --prefix llvm@17)/bin/llvm-cov gcov" poetry run gcovr
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: ${{ !cancelled() }}
with:
report_paths: '**/junit-reports/*.xml'
annotate_only: true
fail_on_failure: true
- name: Publish test coverage to codecov
if: matrix.build.type == 'Debug'
uses: codecov/codecov-action@v4
with:
flags: macos-clang
name: ${{ matrix.config.name }}
files: coverage/cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
build_windows:
name: ${{ matrix.config.name }} ${{ matrix.build.type }}
runs-on: windows-2022
strategy:
matrix:
build:
- {
type: Debug,
preset: conan-debug
}
- {
type: RelWithDebInfo,
preset: conan-relwithdebinfo
}
config:
- {
name: 'Windows MSVC',
cc: cl,
cxx: cl,
profiles: '-pr:h conan/msvc193-md'
}
- {
name: 'Windows Clang',
cc: clang,
cxx: clang++,
profiles: '-pr:h conan/clang16'
}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Visual Studio shell
uses: egor-tensin/vs-shell@v2
- name: Install dependencies
run: |
choco install opencppcoverage
pipx install poetry
echo "CONAN_HOME=${{ runner.temp }}/.conan2" >> ${{ github.env }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: poetry
- name: Install Python dependencies
run: |
poetry install
poetry run conan profile detect
- name: Cache Conan packages
uses: actions/cache@v4
with:
path: ${{ env.CONAN_HOME }}/p
key: conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-${{ hashFiles('conanfile.py') }}
restore-keys: |
conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-
conan-${{ runner.os }}-${{ matrix.config.cc }}-
conan-${{ runner.os }}-
- name: Install Conan packages
run: >
poetry run conan install .
-b missing -pr:b default -pr:h default ${{ matrix.config.profiles }}
-c:h tools.cmake.cmaketoolchain:generator=Ninja
-c:h tools.build:compiler_executables="{'c': '${{ matrix.config.cc }}', 'cpp': '${{ matrix.config.cxx }}'}"
-s:h build_type=${{ matrix.build.type }}
- name: Configure
run: >
poetry run cmake --preset ${{ matrix.build.preset }}
-D ENABLE_COVERAGE:BOOL=${{ matrix.build.type == 'Debug' }}
-D ENABLE_ASAN:BOOL=${{ matrix.build.type == 'Debug' && matrix.config.cc == 'cl' }}
-D ENABLE_HARDENINGS:BOOL=TRUE
- name: Build
run: cmake --build --preset ${{ matrix.build.preset }}
- name: Run tests
if: matrix.build.type != 'Debug'
run: ctest --preset ${{ matrix.build.preset }}
- name: Run tests and collect test coverage
if: matrix.build.type == 'Debug'
run: |
& "C:\Program Files\OpenCppCoverage\OpenCppCoverage.exe" --export_type cobertura:coverage/cobertura.xml --cover_children -- ctest --preset ${{ matrix.build.preset }}
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: ${{ !cancelled() }}
with:
report_paths: '**/junit-reports/*.xml'
annotate_only: true
fail_on_failure: true
- name: Publish test coverage to codecov
if: matrix.build.type == 'Debug'
uses: codecov/codecov-action@v4
with:
flags: windows-${{ matrix.config.cc }}
name: ${{ matrix.config.name }}
files: coverage/cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
codeql:
name: CodeQL
runs-on: ubuntu-24.04
strategy:
matrix:
build:
- {
type: Release,
preset: conan-release
}
config:
- {
cc: gcc-14,
cxx: g++-14,
profiles: '-pr:h conan/gcc14'
}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: cpp
- name: Install poetry
run: |
pipx install poetry
echo "CONAN_HOME=${{ runner.temp }}/.conan2" >> ${{ github.env }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: poetry
- name: Install Python dependencies
run: |
poetry install
poetry run conan profile detect
- name: Cache Conan packages
uses: actions/cache@v4
with:
path: ${{ env.CONAN_HOME }}/p
key: conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-${{ hashFiles('conanfile.py') }}
restore-keys: |
conan-${{ runner.os }}-${{ matrix.config.cc }}-${{ matrix.build.type }}-
conan-${{ runner.os }}-${{ matrix.config.cc }}-
conan-${{ runner.os }}-
- name: Install Conan packages
run: >
poetry run conan install .
-b missing -pr:b default -pr:h default ${{ matrix.config.profiles }}
-c:h tools.cmake.cmaketoolchain:generator=Ninja
-c:h tools.build:compiler_executables="{\"c\": \"${{ matrix.config.cc }}\", \"cpp\": \"${{ matrix.config.cxx }}\"}"
-s:h build_type=${{ matrix.build.type }}
- name: Configure
run: poetry run cmake --preset ${{ matrix.build.preset }}
- name: Build
run: cmake --build --preset ${{ matrix.build.preset }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
analyze:
name: Analyze
runs-on: windows-2022
strategy:
matrix:
build:
- {
type: Release,
preset: conan-release
}
config:
- {
cc: cl,
cxx: cl,
profiles: '-pr:h conan/msvc193-md'
}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Visual Studio shell
uses: egor-tensin/vs-shell@v2
- name: Install poetry
run: |
pipx install poetry
echo "CONAN_HOME=${{ runner.temp }}/.conan2" >> ${{ github.env }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: poetry
- name: Install Python dependencies
run: |
poetry install
poetry run conan profile detect
- name: Cache Conan packages
uses: actions/cache@v4
with:
path: ${{ env.CONAN_HOME }}/p
key: conan-${{ runner.os }}-${{ hashFiles('conanfile.py') }}
restore-keys: conan-${{ runner.os }}-
- name: Install Conan packages
run: >
poetry run conan install .
-b missing -pr:b default -pr:h default ${{ matrix.config.profiles }}
-c:h tools.cmake.cmaketoolchain:generator=Ninja
-c:h tools.build:compiler_executables="{'c': '${{ matrix.config.cc }}', 'cpp': '${{ matrix.config.cxx }}'}"
-s:h build_type=${{ matrix.build.type }}
- name: Configure
run: poetry run cmake --preset ${{ matrix.build.preset }}
- name: Run MSVC Code Analysis
uses: microsoft/msvc-code-analysis-action@main
id: run-analysis
with:
cmakeBuildDirectory: ./build/${{ matrix.build.type }}
buildConfiguration: ${{ matrix.build.type }}
ruleset: NativeRecommendedRules.ruleset
- name: Upload SARIF to GitHub
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ${{ steps.run-analysis.outputs.sarif }}