added environment variable TEST_CPPCHECK_INJECT_J
to inject -j
into the cppcheck invocation of Python tests
#14197
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
# Some convenient links: | |
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md | |
# | |
name: CI-windows | |
on: | |
push: | |
branches: | |
- 'main' | |
- 'releases/**' | |
tags: | |
- '2.*' | |
pull_request: | |
permissions: | |
contents: read | |
defaults: | |
run: | |
shell: cmd | |
# TODO: choose/add a step to bail out on compiler warnings (maybe even the release build) | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [windows-2022] | |
config: [release] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
env: | |
# see https://www.pcre.org/original/changelog.txt | |
PCRE_VERSION: 8.45 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.12 | |
if: matrix.config == 'release' | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
check-latest: true | |
- name: Set up Visual Studio environment | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: x64 | |
- name: Cache PCRE | |
id: cache-pcre | |
uses: actions/cache@v3 | |
with: | |
path: | | |
externals\pcre.h | |
externals\pcre.lib | |
externals\pcre64.lib | |
key: pcre-${{ env.PCRE_VERSION }}-x64-bin-win | |
- name: Download PCRE | |
if: steps.cache-pcre.outputs.cache-hit != 'true' | |
run: | | |
curl -fsSL https://github.com/pfultz2/pcre/archive/refs/tags/%PCRE_VERSION%.zip -o pcre-%PCRE_VERSION%.zip || exit /b !errorlevel! | |
- name: Install PCRE | |
if: steps.cache-pcre.outputs.cache-hit != 'true' | |
run: | | |
7z x pcre-%PCRE_VERSION%.zip || exit /b !errorlevel! | |
cd pcre-%PCRE_VERSION% || exit /b !errorlevel! | |
cmake . -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DPCRE_BUILD_PCRECPP=Off -DPCRE_BUILD_TESTS=Off -DPCRE_BUILD_PCREGREP=Off || exit /b !errorlevel! | |
nmake || exit /b !errorlevel! | |
copy pcre.h ..\externals || exit /b !errorlevel! | |
copy pcre.lib ..\externals\pcre64.lib || exit /b !errorlevel! | |
env: | |
CL: /MP | |
- name: Install missing Python packages | |
if: matrix.config == 'release' | |
run: | | |
python -m pip install pip --upgrade || exit /b !errorlevel! | |
python -m pip install pytest || exit /b !errorlevel! | |
python -m pip install pytest-custom_exit_code || exit /b !errorlevel! | |
python -m pip install pytest-timeout || exit /b !errorlevel! | |
- name: Run CMake | |
if: false # TODO: enable | |
run: | | |
cmake -S . -B build -DBUILD_TESTS=On || exit /b !errorlevel! | |
- name: Build CLI debug configuration using MSBuild | |
if: matrix.config == 'debug' | |
run: | | |
:: cmake --build build --target check --config Debug || exit /b !errorlevel! | |
msbuild -m cppcheck.sln /p:Configuration=Debug-PCRE;Platform=x64 -maxcpucount || exit /b !errorlevel! | |
- name: Run Debug test | |
if: matrix.config == 'debug' | |
run: .\bin\debug\testrunner.exe || exit /b !errorlevel! | |
- name: Build CLI release configuration using MSBuild | |
if: matrix.config == 'release' | |
run: | | |
:: cmake --build build --target check --config Release || exit /b !errorlevel! | |
msbuild -m cppcheck.sln /p:Configuration=Release-PCRE;Platform=x64 -maxcpucount || exit /b !errorlevel! | |
- name: Run test/cli | |
if: matrix.config == 'release' | |
run: | | |
:: since FILESDIR is not set copy the binary to the root so the addons are found | |
:: copy .\build\bin\Release\cppcheck.exe .\cppcheck.exe || exit /b !errorlevel! | |
copy .\bin\cppcheck.exe .\cppcheck.exe || exit /b !errorlevel! | |
copy .\bin\cppcheck-core.dll .\cppcheck-core.dll || exit /b !errorlevel! | |
cd test/cli || exit /b !errorlevel! | |
python -m pytest -Werror --strict-markers -vv || exit /b !errorlevel! | |
set TEST_CPPCHECK_INJECT_J=2 | |
python -m pytest -Werror --strict-markers -vv || exit /b !errorlevel! | |
set TEST_CPPCHECK_INJECT_J= |