cppcheck/.github/workflows/release-windows.yml

155 lines
4.7 KiB
YAML

# 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.15
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