CI-windows.yml: untangle Qt and regular builds (#4454)
This commit is contained in:
parent
f83b8dd385
commit
48874e3aaf
|
@ -15,12 +15,67 @@ defaults:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
|
build_qt:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [windows-2019, windows-2022]
|
||||||
|
qt_ver: [5.15.2, 6.2.4, 6.3.1]
|
||||||
|
fail-fast: false
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Visual Studio environment
|
||||||
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: x64 # no 32-bit Qt available
|
||||||
|
|
||||||
|
- name: Cache Qt ${{ matrix.qt_ver }}
|
||||||
|
id: cache-qt
|
||||||
|
uses: actions/cache@v1 # not v2!
|
||||||
|
with:
|
||||||
|
path: ../Qt
|
||||||
|
key: Windows-QtCache-${{ matrix.qt_ver }}-qtcharts
|
||||||
|
|
||||||
|
- name: Install Qt ${{ matrix.qt_ver }}
|
||||||
|
uses: jurplel/install-qt-action@v2
|
||||||
|
with:
|
||||||
|
aqtversion: '==2.0.6'
|
||||||
|
version: ${{ matrix.qt_ver }}
|
||||||
|
modules: 'qtcharts'
|
||||||
|
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
||||||
|
|
||||||
|
- name: Build GUI release (qmake)
|
||||||
|
if: startsWith(matrix.qt_ver, '5')
|
||||||
|
run: |
|
||||||
|
cd gui || exit /b !errorlevel!
|
||||||
|
qmake HAVE_QCHART=yes || exit /b !errorlevel!
|
||||||
|
nmake release || exit /b !errorlevel!
|
||||||
|
env:
|
||||||
|
CL: /MP
|
||||||
|
|
||||||
|
- name: Deploy GUI
|
||||||
|
if: startsWith(matrix.qt_ver, '5')
|
||||||
|
run: |
|
||||||
|
windeployqt Build\gui || exit /b !errorlevel!
|
||||||
|
del Build\gui\cppcheck-gui.ilk || exit /b !errorlevel!
|
||||||
|
del Build\gui\cppcheck-gui.pdb || exit /b !errorlevel!
|
||||||
|
|
||||||
|
- name: Build GUI release (CMake)
|
||||||
|
if: startsWith(matrix.qt_ver, '6')
|
||||||
|
run: |
|
||||||
|
cmake -S . -B build -DBUILD_GUI=On -DWITH_QCHART=On -DUSE_QT6=On || exit /b !errorlevel!
|
||||||
|
cmake --build build --target cppcheck-gui || exit /b !errorlevel!
|
||||||
|
|
||||||
|
# TODO: deploy with CMake/Qt6
|
||||||
|
|
||||||
build:
|
build:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [windows-2019, windows-2022]
|
os: [windows-2019, windows-2022]
|
||||||
arch: [x64, x86]
|
arch: [x64, x86]
|
||||||
qt_ver: ['', 5.15.2, 6.2.4, 6.3.1]
|
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
@ -31,16 +86,13 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
if: matrix.arch == 'x64' || matrix.qt_ver == ''
|
|
||||||
|
|
||||||
- name: Set up Python 3.10
|
- name: Set up Python 3.10
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: '3.10'
|
python-version: '3.10'
|
||||||
|
|
||||||
- name: Set up Visual Studio environment
|
- name: Set up Visual Studio environment
|
||||||
if: matrix.arch == 'x64' || matrix.qt_ver == ''
|
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
with:
|
with:
|
||||||
arch: ${{ matrix.arch }}
|
arch: ${{ matrix.arch }}
|
||||||
|
@ -48,7 +100,6 @@ jobs:
|
||||||
- name: Cache PCRE
|
- name: Cache PCRE
|
||||||
id: cache-pcre
|
id: cache-pcre
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
externals\pcre.h
|
externals\pcre.h
|
||||||
|
@ -57,12 +108,12 @@ jobs:
|
||||||
key: pcre-${{ env.PCRE_VERSION }}-${{ matrix.arch }}-bin-win
|
key: pcre-${{ env.PCRE_VERSION }}-${{ matrix.arch }}-bin-win
|
||||||
|
|
||||||
- name: Download PCRE
|
- name: Download PCRE
|
||||||
if: matrix.qt_ver == '' && steps.cache-pcre.outputs.cache-hit != 'true'
|
if: steps.cache-pcre.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
curl -fsSL https://github.com/pfultz2/pcre/archive/refs/tags/%PCRE_VERSION%.zip -o pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
curl -fsSL https://github.com/pfultz2/pcre/archive/refs/tags/%PCRE_VERSION%.zip -o pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Install PCRE
|
- name: Install PCRE
|
||||||
if: matrix.qt_ver == '' && steps.cache-pcre.outputs.cache-hit != 'true'
|
if: steps.cache-pcre.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
7z x pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
7z x pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
||||||
cd pcre-%PCRE_VERSION% || exit /b !errorlevel!
|
cd pcre-%PCRE_VERSION% || exit /b !errorlevel!
|
||||||
|
@ -77,57 +128,14 @@ jobs:
|
||||||
env:
|
env:
|
||||||
CL: /MP
|
CL: /MP
|
||||||
|
|
||||||
- name: Cache Qt ${{ matrix.qt_ver }}
|
|
||||||
if: matrix.qt_ver != '' && matrix.arch == 'x64'
|
|
||||||
id: cache-qt
|
|
||||||
uses: actions/cache@v1 # not v2!
|
|
||||||
with:
|
|
||||||
path: ../Qt
|
|
||||||
key: Windows-QtCache-${{ matrix.qt_ver }}-qtcharts
|
|
||||||
|
|
||||||
# no 32-bit Qt available
|
|
||||||
- name: Install Qt ${{ matrix.qt_ver }}
|
|
||||||
if: matrix.qt_ver != '' && matrix.arch == 'x64'
|
|
||||||
uses: jurplel/install-qt-action@v2
|
|
||||||
with:
|
|
||||||
aqtversion: '==2.0.6'
|
|
||||||
version: ${{ matrix.qt_ver }}
|
|
||||||
modules: 'qtcharts'
|
|
||||||
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
|
||||||
|
|
||||||
- name: Install missing Python packages
|
- name: Install missing Python packages
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: |
|
run: |
|
||||||
python -m pip install pip --upgrade || exit /b !errorlevel!
|
python -m pip install pip --upgrade || exit /b !errorlevel!
|
||||||
python -m pip install pytest || 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-custom_exit_code || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Build GUI release (qmake)
|
|
||||||
if: startsWith(matrix.qt_ver, '5') && matrix.arch == 'x64'
|
|
||||||
run: |
|
|
||||||
cd gui || exit /b !errorlevel!
|
|
||||||
qmake HAVE_QCHART=yes || exit /b !errorlevel!
|
|
||||||
nmake release || exit /b !errorlevel!
|
|
||||||
env:
|
|
||||||
CL: /MP
|
|
||||||
|
|
||||||
- name: Deploy GUI
|
|
||||||
if: startsWith(matrix.qt_ver, '5') && matrix.arch == 'x64'
|
|
||||||
run: |
|
|
||||||
windeployqt Build\gui || exit /b !errorlevel!
|
|
||||||
del Build\gui\cppcheck-gui.ilk || exit /b !errorlevel!
|
|
||||||
del Build\gui\cppcheck-gui.pdb || exit /b !errorlevel!
|
|
||||||
|
|
||||||
- name: Build GUI release (CMake)
|
|
||||||
if: startsWith(matrix.qt_ver, '6') && matrix.arch == 'x64'
|
|
||||||
run: |
|
|
||||||
cmake -S . -B build -DBUILD_GUI=On -DWITH_QCHART=On -DUSE_QT6=On || exit /b !errorlevel!
|
|
||||||
cmake --build build --target cppcheck-gui || exit /b !errorlevel!
|
|
||||||
|
|
||||||
# TODO: deploy with Qt6
|
|
||||||
|
|
||||||
- name: Run CMake
|
- name: Run CMake
|
||||||
if: false && matrix.qt_ver == ''
|
if: false # TODO: enable
|
||||||
run: |
|
run: |
|
||||||
set ARCH=${{ matrix.arch }}
|
set ARCH=${{ matrix.arch }}
|
||||||
if "${{ matrix.arch }}" == "x86" (
|
if "${{ matrix.arch }}" == "x86" (
|
||||||
|
@ -136,7 +144,6 @@ jobs:
|
||||||
cmake -S . -B build -DBUILD_TESTS=On || exit /b !errorlevel!
|
cmake -S . -B build -DBUILD_TESTS=On || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Build CLI debug configuration using MSBuild
|
- name: Build CLI debug configuration using MSBuild
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: |
|
run: |
|
||||||
set ARCH=${{ matrix.arch }}
|
set ARCH=${{ matrix.arch }}
|
||||||
if "${{ matrix.arch }}" == "x86" (
|
if "${{ matrix.arch }}" == "x86" (
|
||||||
|
@ -146,11 +153,9 @@ jobs:
|
||||||
msbuild -m cppcheck.sln /p:Configuration=Debug-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
|
msbuild -m cppcheck.sln /p:Configuration=Debug-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Run Debug test
|
- name: Run Debug test
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: .\bin\debug\testrunner.exe || exit /b !errorlevel!
|
run: .\bin\debug\testrunner.exe || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Build CLI release configuration using MSBuild
|
- name: Build CLI release configuration using MSBuild
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: |
|
run: |
|
||||||
set ARCH=${{ matrix.arch }}
|
set ARCH=${{ matrix.arch }}
|
||||||
if "${{ matrix.arch }}" == "x86" (
|
if "${{ matrix.arch }}" == "x86" (
|
||||||
|
@ -160,11 +165,9 @@ jobs:
|
||||||
msbuild -m cppcheck.sln /p:Configuration=Release-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
|
msbuild -m cppcheck.sln /p:Configuration=Release-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Run Release test
|
- name: Run Release test
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: .\bin\testrunner.exe || exit /b !errorlevel!
|
run: .\bin\testrunner.exe || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Run test/cli
|
- name: Run test/cli
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: |
|
run: |
|
||||||
:: since FILESDIR is not set copy the binary to the root so the addons are found
|
:: 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 .\build\bin\Release\cppcheck.exe .\cppcheck.exe || exit /b !errorlevel!
|
||||||
|
@ -180,7 +183,6 @@ jobs:
|
||||||
python -m pytest test-suppress-syntaxError.py || exit /b !errorlevel!
|
python -m pytest test-suppress-syntaxError.py || exit /b !errorlevel!
|
||||||
|
|
||||||
- name: Test addons
|
- name: Test addons
|
||||||
if: matrix.qt_ver == ''
|
|
||||||
run: |
|
run: |
|
||||||
.\cppcheck --addon=threadsafety addons\test\threadsafety || exit /b !errorlevel!
|
.\cppcheck --addon=threadsafety addons\test\threadsafety || exit /b !errorlevel!
|
||||||
.\cppcheck --addon=threadsafety --std=c++03 addons\test\threadsafety || exit /b !errorlevel!
|
.\cppcheck --addon=threadsafety --std=c++03 addons\test\threadsafety || exit /b !errorlevel!
|
||||||
|
|
Loading…
Reference in New Issue