2020-05-29 14:05:19 +02:00
|
|
|
# Some convenient links:
|
|
|
|
# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md
|
|
|
|
#
|
|
|
|
|
|
|
|
name: release-windows
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
tags:
|
2020-10-31 12:23:24 +01:00
|
|
|
- '2.*'
|
2020-05-29 14:05:19 +02:00
|
|
|
schedule:
|
|
|
|
- cron: '0 0 * * *'
|
2020-10-31 12:23:24 +01:00
|
|
|
workflow_dispatch:
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2023-01-18 17:04:21 +01:00
|
|
|
permissions:
|
|
|
|
contents: read
|
2022-08-26 23:25:07 +02:00
|
|
|
|
2020-05-29 14:05:19 +02:00
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: cmd
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
2022-05-13 19:48:17 +02:00
|
|
|
runs-on: windows-2022
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-01-04 11:16:28 +01:00
|
|
|
env:
|
|
|
|
# see https://www.pcre.org/original/changelog.txt
|
|
|
|
PCRE_VERSION: 8.45
|
2022-01-28 19:44:39 +01:00
|
|
|
QT_VERSION: 5.15.2
|
2022-01-04 11:16:28 +01:00
|
|
|
|
2020-05-29 14:05:19 +02:00
|
|
|
steps:
|
2022-10-11 19:50:59 +02:00
|
|
|
- uses: actions/checkout@v3
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-04-11 19:16:58 +02:00
|
|
|
- name: Set up Visual Studio environment
|
|
|
|
uses: ilammy/msvc-dev-cmd@v1
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-01-04 11:16:28 +01:00
|
|
|
- name: Cache PCRE
|
|
|
|
id: cache-pcre
|
2022-10-11 19:50:59 +02:00
|
|
|
uses: actions/cache@v3
|
2022-01-04 11:16:28 +01:00
|
|
|
with:
|
2022-08-07 19:04:10 +02:00
|
|
|
path: |
|
|
|
|
externals\pcre.h
|
|
|
|
externals\pcre64.lib
|
|
|
|
key: pcre-${{ env.PCRE_VERSION }}-bin-x64-win-release-job
|
2022-01-04 11:16:28 +01:00
|
|
|
|
|
|
|
- name: Download PCRE
|
|
|
|
if: steps.cache-pcre.outputs.cache-hit != 'true'
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
curl -fsSL https://github.com/pfultz2/pcre/archive/refs/tags/%PCRE_VERSION%.zip -o pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
2022-01-04 11:16:28 +01:00
|
|
|
|
2020-05-29 14:05:19 +02:00
|
|
|
- name: Install PCRE
|
2022-08-07 19:04:10 +02:00
|
|
|
if: steps.cache-pcre.outputs.cache-hit != 'true'
|
2020-05-29 14:05:19 +02:00
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
7z x pcre-%PCRE_VERSION%.zip || exit /b !errorlevel!
|
|
|
|
cd pcre-%PCRE_VERSION% || exit /b !errorlevel!
|
2022-05-13 19:48:17 +02:00
|
|
|
cmake . -G "Visual Studio 17 2022" -A x64 -DPCRE_BUILD_PCRECPP=OFF -DPCRE_BUILD_PCREGREP=OFF -DPCRE_BUILD_TESTS=OFF || exit /b !errorlevel!
|
2022-04-11 19:16:58 +02:00
|
|
|
msbuild -m PCRE.sln -p:Configuration=Release -p:Platform=x64 || exit /b !errorlevel!
|
|
|
|
copy pcre.h ..\externals || exit /b !errorlevel!
|
|
|
|
copy Release\pcre.lib ..\externals\pcre64.lib || exit /b !errorlevel!
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-11-02 12:11:13 +01:00
|
|
|
# available modules: https://github.com/miurahr/aqtinstall/blob/master/docs/getting_started.rst#installing-modules
|
|
|
|
# available tools: https://github.com/miurahr/aqtinstall/blob/master/docs/getting_started.rst#installing-tools
|
2022-01-28 19:44:39 +01:00
|
|
|
- name: Install Qt ${{ env.QT_VERSION }}
|
2023-01-18 17:04:21 +01:00
|
|
|
uses: jurplel/install-qt-action@v3
|
2020-05-29 14:05:19 +02:00
|
|
|
with:
|
2022-01-28 19:44:39 +01:00
|
|
|
version: ${{ env.QT_VERSION }}
|
2023-01-18 17:04:21 +01:00
|
|
|
modules: 'qtcharts'
|
|
|
|
tools: 'tools_openssl_x64,qt.tools.openssl.win_x64'
|
|
|
|
cache: true
|
2020-05-29 14:05:19 +02:00
|
|
|
|
|
|
|
- name: Create .qm
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
cd gui || exit /b !errorlevel!
|
|
|
|
lupdate gui.pro -no-obsolete || exit /b !errorlevel!
|
|
|
|
lrelease gui.pro -removeidentical || exit /b !errorlevel!
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2020-05-31 18:38:23 +02:00
|
|
|
- name: Matchcompiler
|
2022-04-11 19:16:58 +02:00
|
|
|
run: python tools\matchcompiler.py --write-dir lib || exit /b !errorlevel!
|
2020-05-31 18:38:23 +02:00
|
|
|
|
2020-05-29 14:05:19 +02:00
|
|
|
- name: Build x64 release GUI
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
cd gui || exit /b !errorlevel!
|
|
|
|
qmake HAVE_QCHART=yes || exit /b !errorlevel!
|
|
|
|
nmake release || exit /b !errorlevel!
|
2021-04-03 21:28:17 +02:00
|
|
|
env:
|
|
|
|
CL: /MP
|
2020-05-29 14:05:19 +02:00
|
|
|
|
|
|
|
- name: Deploy app
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
windeployqt Build\gui || exit /b !errorlevel!
|
|
|
|
del Build\gui\cppcheck-gui.ilk || exit /b !errorlevel!
|
|
|
|
del Build\gui\cppcheck-gui.pdb || exit /b !errorlevel!
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-09-27 18:49:18 +02:00
|
|
|
# TODO: build with boost enabled
|
2020-05-29 14:05:19 +02:00
|
|
|
- name: Build CLI x64 release configuration using MSBuild
|
2022-04-11 19:16:58 +02:00
|
|
|
run: msbuild -m cppcheck.sln -t:cli -p:Configuration=Release-PCRE -p:Platform=x64 || exit /b !errorlevel!
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2023-01-02 19:07:22 +01:00
|
|
|
- name: Compile misra.py executable
|
|
|
|
run: |
|
|
|
|
pip install -U pyinstaller || exit /b !errorlevel!
|
|
|
|
cd addons || exit /b !errorlevel!
|
|
|
|
pyinstaller --hidden-import xml --hidden-import xml.etree --hidden-import xml.etree.ElementTree misra.py || exit /b !errorlevel!
|
|
|
|
del *.spec || exit /b !errorlevel!
|
|
|
|
|
2021-10-16 13:59:39 +02:00
|
|
|
- name: Collect files
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
move Build\gui win_installer\files || exit /b !errorlevel!
|
|
|
|
mkdir win_installer\files\addons || exit /b !errorlevel!
|
|
|
|
copy addons\*.* win_installer\files\addons || exit /b !errorlevel!
|
2023-01-02 19:07:22 +01:00
|
|
|
copy addons\dist\misra\*.* win_installer\files\addons || exit /b !errorlevel!
|
2022-04-11 19:16:58 +02:00
|
|
|
mkdir win_installer\files\cfg || exit /b !errorlevel!
|
|
|
|
copy cfg\*.cfg win_installer\files\cfg || exit /b !errorlevel!
|
|
|
|
:: "platforms" is a folder used by Qt as well so it already exists
|
|
|
|
:: mkdir win_installer\files\platforms || exit /b !errorlevel!
|
|
|
|
copy platforms\*.xml win_installer\files\platforms || exit /b !errorlevel!
|
|
|
|
copy bin\cppcheck.exe win_installer\files || exit /b !errorlevel!
|
|
|
|
copy bin\cppcheck-core.dll win_installer\files || exit /b !errorlevel!
|
|
|
|
mkdir win_installer\files\help || exit /b !errorlevel!
|
|
|
|
xcopy /s gui\help win_installer\files\help || exit /b !errorlevel!
|
|
|
|
del win_installer\files\translations\*.qm || exit /b !errorlevel!
|
|
|
|
move gui\*.qm win_installer\files\translations || exit /b !errorlevel!
|
2022-11-02 12:11:13 +01:00
|
|
|
:: copy libcrypto-1_1-x64.dll and libssl-1_1-x64.dll
|
|
|
|
copy %RUNNER_WORKSPACE%\Qt\Tools\OpenSSL\Win_x64\bin\lib*.dll win_installer\files || exit /b !errorlevel!
|
2021-10-16 13:59:39 +02:00
|
|
|
|
2020-05-29 14:05:19 +02:00
|
|
|
- name: Build Installer
|
|
|
|
run: |
|
2022-04-11 19:16:58 +02:00
|
|
|
cd win_installer || exit /b !errorlevel!
|
2020-10-31 12:23:24 +01:00
|
|
|
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:"=%
|
2022-04-11 19:16:58 +02:00
|
|
|
echo ProductVersion="%PRODUCTVER%" || exit /b !errorlevel!
|
|
|
|
msbuild -m cppcheck.wixproj -p:Platform=x64,ProductVersion=%PRODUCTVER%.${{ github.run_number }} || exit /b !errorlevel!
|
2020-05-29 14:05:19 +02:00
|
|
|
|
2022-10-11 19:50:59 +02:00
|
|
|
- uses: actions/upload-artifact@v3
|
2020-05-29 14:05:19 +02:00
|
|
|
with:
|
2020-08-25 19:58:52 +02:00
|
|
|
name: installer
|
2020-05-29 14:05:19 +02:00
|
|
|
path: win_installer/Build/
|
2020-08-25 19:58:52 +02:00
|
|
|
|
2022-10-11 19:50:59 +02:00
|
|
|
- uses: actions/upload-artifact@v3
|
2020-08-25 19:58:52 +02:00
|
|
|
with:
|
|
|
|
name: deploy
|
2021-10-16 13:59:39 +02:00
|
|
|
path: win_installer\files
|