build(deps-dev): bump @commitlint/config-conventional from 18.4.2 to 18.4.3 #853
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-22.04 | |
strategy: | |
matrix: | |
build: | |
- { | |
type: Debug, | |
preset: conan-debug | |
} | |
- { | |
type: RelWithDebInfo, | |
preset: conan-relwithdebinfo | |
} | |
config: | |
- { | |
name: 'Linux GCC', | |
cc: gcc-13, | |
cxx: g++-13, | |
gcov: gcov-13, | |
profiles: '-pr:h conan/gcc13' | |
} | |
# - { | |
# name: 'Linux Clang', | |
# cc: clang-15, | |
# cxx: clang++-15, | |
# gcov: llvm-cov-15 gcov, | |
# profiles: '-pr:h conan/clang15 -pr:h conan/libc++' | |
# } | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
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@v4 | |
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@v3 | |
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_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@v3 | |
with: | |
flags: linux-${{ matrix.config.cc }} | |
name: ${{ matrix.config.name }} | |
files: coverage/cobertura.xml | |
fail_ci_if_error: true | |
build_macos: | |
name: ${{ matrix.config.name }} ${{ matrix.build.type }} | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
build: | |
- { | |
type: Debug, | |
preset: conan-debug | |
} | |
- { | |
type: RelWithDebInfo, | |
preset: conan-relwithdebinfo | |
} | |
config: | |
- { | |
name: 'Macos Clang', | |
cc: $(brew --prefix llvm@16)/bin/clang, | |
cxx: $(brew --prefix llvm@16)/bin/clang++, | |
profiles: '-pr:h conan/clang16 -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@16 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
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@v3 | |
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@16)/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@v3 | |
with: | |
flags: macos-clang | |
name: ${{ matrix.config.name }} | |
files: coverage/cobertura.xml | |
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@v4 | |
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@v3 | |
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@v3 | |
with: | |
flags: windows-${{ matrix.config.cc }} | |
name: ${{ matrix.config.name }} | |
files: coverage/cobertura.xml | |
fail_ci_if_error: true | |
codeql: | |
name: CodeQL | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
build: | |
- { | |
type: Release, | |
preset: conan-release | |
} | |
config: | |
- { | |
cc: gcc-13, | |
cxx: g++-13, | |
profiles: '-pr:h conan/gcc13' | |
} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
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@v4 | |
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@v3 | |
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@v2 | |
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@v4 | |
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@v3 | |
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@v2 | |
with: | |
sarif_file: ${{ steps.run-analysis.outputs.sarif }} |