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.14.0 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 } 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 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: | 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: | 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%\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%" 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: 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