forked from cppcheck-opensource/cppcheck
-
Notifications
You must be signed in to change notification settings - Fork 0
154 lines (127 loc) · 4.74 KB
/
release-windows.yml
File metadata and controls
154 lines (127 loc) · 4.74 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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# Some convenient links:
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md
#
name: release-windows
on:
push:
tags:
- '2.*'
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
defaults:
run:
shell: cmd
jobs:
build:
runs-on: windows-2019
env:
# see https://www.pcre.org/original/changelog.txt
PCRE_VERSION: 8.45
# see https://github.com/Z3Prover/z3/releases:
Z3_VERSION: 4.8.10
QT_VERSION: 5.15.2
steps:
- uses: actions/checkout@v2
- name: Setup msbuild.exe
uses: microsoft/setup-msbuild@v1.0.2
- name: Cache PCRE
id: cache-pcre
uses: actions/cache@v2
with:
path: pcre-${{ env.PCRE_VERSION }}.zip
key: pcre-${{ env.PCRE_VERSION }}
- 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
- name: Install PCRE
run: |
7z x pcre-%PCRE_VERSION%.zip
cd pcre-%PCRE_VERSION%
cmake . -G "Visual Studio 16 2019" -A x64 -DPCRE_BUILD_PCRECPP=OFF -DPCRE_BUILD_PCREGREP=OFF -DPCRE_BUILD_TESTS=OFF
msbuild -m PCRE.sln /p:Configuration=Release /p:Platform=x64
copy pcre.h ..\externals
copy Release\pcre.lib ..\externals\pcre64.lib
- name: Cache Z3 Library
id: cache-z3
uses: actions/cache@v2
with:
path: z3-${{ env.Z3_VERSION }}-x64-win.zip
key: z3-${{ env.Z3_VERSION }}-x64-win
- name: Download Z3 library
if: steps.cache-z3.outputs.cache-hit != 'true'
run: |
curl -fsSL https://github.com/Z3Prover/z3/releases/download/z3-%Z3_VERSION%/z3-%Z3_VERSION%-x64-win.zip -o z3-%Z3_VERSION%-x64-win.zip
- name: Install Z3 library
run: |
7z x z3-%Z3_VERSION%-x64-win.zip -oexternals -r -y
move externals\z3-%Z3_VERSION%-x64-win externals\z3
- name: Cache Qt ${{ env.QT_VERSION }}
id: cache-qt
uses: actions/cache@v1 # not v2!
with:
path: ../Qt
key: Windows-QtCache-${{ env.QT_VERSION }}-qtcharts-qthelp
- name: Install Qt ${{ env.QT_VERSION }}
uses: jurplel/install-qt-action@v2
with:
version: ${{ env.QT_VERSION }}
modules: 'qtcharts qthelp'
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- name: Create .qm
run: |
cd gui
lupdate gui.pro
lrelease gui.pro -removeidentical
- name: Matchcompiler
run: python tools\matchcompiler.py --write-dir lib
- name: Build x64 release GUI
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cd gui
qmake HAVE_QCHART=yes
nmake release
env:
CL: /MP
- name: Deploy app
run: |
windeployqt Build\gui
del Build\gui\cppcheck-gui.ilk
del Build\gui\cppcheck-gui.pdb
- name: Build CLI x64 release configuration using MSBuild
run: msbuild -m cppcheck.sln /t:cli /p:Configuration=Release-PCRE /p:Platform=x64
- name: Collect files
run: |
move Build\gui win_installer\files
mkdir win_installer\files\addons
copy addons\*.* win_installer\files\addons
mkdir win_installer\files\cfg
copy cfg\*.cfg win_installer\files\cfg
mkdir win_installer\files\platforms
copy platforms\*.xml win_installer\files\platforms
copy bin\cppcheck.exe win_installer\files
copy bin\cppcheck-core.dll win_installer\files
copy externals\z3\bin\libz3.dll win_installer\files
mkdir win_installer\files\help
xcopy /s gui\help win_installer\files\help
del win_installer\files\translations\*.qm
move gui\*.qm win_installer\files\translations
- name: Build Installer
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cd win_installer
REM Read ProductVersion
for /f "tokens=4 delims= " %%a in ('find "ProductVersion" productInfo.wxi') do set PRODUCTVER=%%a
REM Remove double quotes
set PRODUCTVER=%PRODUCTVER:"=%
echo ProductVersion=%PRODUCTVER%
msbuild -m cppcheck.wixproj /p:Platform=x64,ProductVersion=%PRODUCTVER%.${{ github.run_number }}
- uses: actions/upload-artifact@v2
with:
name: installer
path: win_installer/Build/
- uses: actions/upload-artifact@v2
with:
name: deploy
path: win_installer\files