forked from danmar/cppcheck
-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (109 loc) · 5.11 KB
/
CI-windows.yml
File metadata and controls
129 lines (109 loc) · 5.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Some convenient links:
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md
#
name: CI-windows
on: [push,pull_request]
defaults:
run:
shell: cmd
jobs:
build:
strategy:
matrix:
# windows 2016 should default to VS 2017. Not supported by setup-msbuild
os: [windows-2019]
arch: [x64, x86]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Setup msbuild.exe
uses: microsoft/[email protected]
- name: Install PCRE
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }} || exit /b !errorlevel!
curl -fsSL https://ftp.pcre.org/pub/pcre/pcre-%PCRE_VERSION%.zip -o pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
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!
if "${{ matrix.arch }}" == "x86" (
copy pcre.lib ..\externals\pcre.lib || exit /b !errorlevel!
) else (
copy pcre.lib ..\externals\pcre64.lib || exit /b !errorlevel!
)
env:
# see https://www.pcre.org/original/changelog.txt
PCRE_VERSION: 8.44
CL: /MP
- name: Install Z3 library
run: |
curl -fsSL https://github.com/Z3Prover/z3/releases/download/z3-%Z3_VERSION%/z3-%Z3_VERSION%-${{ matrix.arch }}-win.zip -o z3-%Z3_VERSION%-win.zip || exit /b !errorlevel!
7z x z3-%Z3_VERSION%-win.zip -oexternals -r -y || exit /b !errorlevel!
move externals\z3-%Z3_VERSION%-${{ matrix.arch }}-win externals\z3 || exit /b !errorlevel!
env:
# see https://github.com/Z3Prover/z3/releases:
Z3_VERSION: 4.8.10
# no 32-bit Qt available
- name: Install Qt
if: matrix.arch == 'x64'
uses: jurplel/install-qt-action@v2
with:
modules: 'qtcharts'
- name: Install missing Python packages
run: |
python -m pip install pip --upgrade
python -m pip install pytest
python -m pip install pytest-custom_exit_code
- name: Build GUI release
if: matrix.arch == 'x64'
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }} || exit /b !errorlevel!
cd gui || exit /b !errorlevel!
qmake HAVE_QCHART=yes || exit /b !errorlevel!
nmake release || exit /b !errorlevel!
env:
CL: /MP
- name: Deploy GUI
if: 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 CLI debug configuration using MSBuild
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }} || exit /b !errorlevel!
set ARCH=${{ matrix.arch }}
if "${{ matrix.arch }}" == "x86" (
set ARCH=Win32
)
msbuild -m cppcheck.sln /p:Configuration=Debug-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
- name: Run Debug test
run: .\bin\debug\testrunner.exe || exit /b !errorlevel!
- name: Build CLI release configuration using MSBuild
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.arch }} || exit /b !errorlevel!
set ARCH=${{ matrix.arch }}
if "${{ matrix.arch }}" == "x86" (
set ARCH=Win32
)
msbuild -m cppcheck.sln /p:Configuration=Release-PCRE;Platform=%ARCH% -maxcpucount || exit /b !errorlevel!
- name: Run Release test
run: .\bin\testrunner.exe || exit /b !errorlevel!
- name: Run test/cli
run: |
:: since FILESDIR is not set copy the binary to the root so the addons are found
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 --suppress-no-test-exit-code test-clang-import.py || exit /b !errorlevel!
python -m pytest test-helloworld.py || exit /b !errorlevel!
python -m pytest test-inline-suppress.py || exit /b !errorlevel!
python -m pytest test-more-projects.py || exit /b !errorlevel!
python -m pytest test-proj2.py || exit /b !errorlevel!
python -m pytest test-suppress-syntaxError.py || exit /b !errorlevel!