name: CI-Windows on: push: branches: [ master ] pull_request: branches: [ master ] # Allows you to run this workflow manually from the Actions tab. workflow_dispatch: env: VNOTE_VER: 3.15.1 jobs: build: name: ${{ matrix.config.name }} runs-on: windows-2019 timeout-minutes: 120 strategy: matrix: config: - { name: "Build On Win64 Qt 5.12", arch: win64_msvc2017_64, platform: x64, qt: 5.12.11 } - { name: "Build On Win32 Qt 5.12", arch: win32_msvc2017, platform: x86, qt: 5.12.11 } - { name: "Build On Win64 Qt 5.15", arch: win64_msvc2019_64, platform: x64, qt: 5.15.2 } - { name: "Build On Win32 Qt 5.15", arch: win32_msvc2019, platform: x86, qt: 5.15.2 } steps: # Checks-out your repository under $GITHUB_WORKSPACE. - uses: actions/checkout@v2 with: fetch-depth: 1 - name: Init Submodules shell: bash run: | auth_header="$(git config --local --get http.https://github.com/.extraheader)" git submodule sync --recursive git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 - name: Cache Qt id: cache-qt uses: actions/cache@v1 # not v2! with: path: ../Qt key: ${{ runner.os }}-${{matrix.config.arch}}-QtCache-5.12-1 - name: Install Qt Official Build uses: jurplel/install-qt-action@v2 with: version: ${{matrix.config.qt}} target: desktop arch: ${{matrix.config.arch}} modules: qtwebengine tools: tools_openssl_${{matrix.config.platform}},1.1.1-4,qt.tools.openssl.win_${{matrix.config.platform}} cached: ${{ steps.cache-qt.outputs.cache-hit }} - name: Create Build Dir shell: bash run: mkdir build working-directory: ${{runner.workspace}} - name: Clone OpenSSL shell: bash run: | git clone https://github.com/tamlok/openssl-utils.git openssl-utils.git --depth=1 working-directory: ${{runner.workspace}}/build - name: Configure and Build Project shell: cmd run: | qmake --version call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}} qmake -r -spec win32-msvc CONFIG-=debug CONFIG+=release %GITHUB_WORKSPACE%\vnote.pro nmake working-directory: ${{runner.workspace}}/build - name: Package Project shell: cmd run: | qmake --version mkdir "%DISTRIB_PATH%" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.config.platform}} windeployqt.exe --dir "%DISTRIB_PATH%" .\src\release\vnote.exe copy .\src\release\vnote.exe "%DISTRIB_PATH%\vnote.exe" copy .\src\release\vnote_extra.rcc "%DISTRIB_PATH%\vnote_extra.rcc" copy .\libs\vtextedit\src\libs\syntax-highlighting\release\VSyntaxHighlighting.dll "%DISTRIB_PATH%\VSyntaxHighlighting.dll" copy .\libs\vtextedit\src\editor\release\VTextEdit.dll "%DISTRIB_PATH%\VTextEdit.dll" rem set qt_dir=%Qt5_Dir:/=\% rem for %%I in ("%qt_dir%\..\..") do set "qt_topdir=%%~fI" rem set openssl_dir=%qt_topdir%\Tools\OpenSSL\Win_${{matrix.config.platform}}\bin set openssl_dir=openssl-utils.git\1.1.1j\Win_${{matrix.config.platform}} copy %openssl_dir%\lib*.dll "%DISTRIB_PATH%\" copy "%GITHUB_WORKSPACE%\README.md" "%DISTRIB_PATH%\README.md" copy "%GITHUB_WORKSPACE%\src\data\core\icons\vnote.ico" "%DISTRIB_PATH%\vnote.ico" copy "%GITHUB_WORKSPACE%\COPYING.LESSER" "%DISTRIB_PATH%\COPYING.LESSER" echo %GITHUB_SHA% > "%DISTRIB_PATH%\commit" del /F /Q "%DISTRIB_PATH%\translations\qt_*.qm" 7z a vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip "%DISTRIB_PATH%" copy vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip working-directory: ${{runner.workspace}}/build env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote - name: Package Installer shell: cmd run: | git clone https://github.com/vnotex/mkmsi.git mkmsi.git --depth=1 python .\mkmsi.git\mkmsi.py --auto-create qt --source-dir "%DISTRIB_PATH%" --wix-root "C:\Program Files (x86)\WiX Toolset v3.11" --merge-module "C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC140_CRT_${{matrix.config.platform}}.msm" --add-desktop-shortcut --project-version ${{env.VNOTE_VER}} --license %GITHUB_WORKSPACE%\package\lgpl-3.0.rtf --executable vnote.exe --wix-banner %GITHUB_WORKSPACE%\package\wix_banner.png --wix-dialog %GITHUB_WORKSPACE%\package\wix_dialog.png VNote move VNote.msi .\distrib\VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi working-directory: ${{runner.workspace}}/build env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote - name: Archive Artifacts uses: actions/upload-artifact@v2 with: name: vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}} path: ${{env.DISTRIB_PATH}} env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote - name: Archive Installer uses: actions/upload-artifact@v2 with: name: VNote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.msi path: ${{runner.workspace}}/build/distrib/VNote*.msi env: DISTRIB_PATH: ${{runner.workspace}}/build/distrib/vnote - name: Update Tag if: github.ref == 'refs/heads/master' shell: bash run: | git tag --force continuous-build ${GITHUB_SHA} git push --force --tags - name: Update Continuous Build Release if: github.ref == 'refs/heads/master' uses: johnwbyrd/update-release@v1.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} files: ${{runner.workspace}}/build/vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}.zip release: Continuous Build tag: continuous-build - name: Test shell: cmd run: | dir . dir .\distrib working-directory: ${{runner.workspace}}/build - name: Release if: github.ref == 'refs/heads/master' && startsWith(github.event.head_commit.message, '[Release]') uses: ncipollo/release-action@v1.11.0 with: token: ${{ secrets.GITHUB_TOKEN }} artifacts: ${{runner.workspace}}\build\vnote-win-${{matrix.config.platform}}-qt${{matrix.config.qt}}_v${{env.VNOTE_VER}}.zip commit: master tag: v${{env.VNOTE_VER}} allowUpdates: true draft: true