name: Windows on: push: paths: - '*.txt' - 'src/**' - 'example/**' - 'scripts/**' - '.github/workflows/windows.yml' pull_request: paths: - '*.txt' - 'example/**' - 'src/**' - 'scripts/**' - '.github/workflows/windows.yml' jobs: build: name: Build runs-on: ${{ matrix.os }} strategy: matrix: os: [windows-2019] include: - qt_ver: 6.6.0 qt_arch: win64_msvc2019_64 msvc_arch: x64 qt_arch_install: msvc2019_64 env: targetName: example.exe fileName: example steps: - name: Check out repository uses: actions/checkout@v3 with: submodules: recursive - name: Install Qt uses: jurplel/install-qt-action@v3 with: version: ${{ matrix.qt_ver }} arch: ${{ matrix.qt_arch }} cache: ${{steps.cache-qt.outputs.cache-hit}} modules: 'debug_info qt3d qt5compat qtactiveqt qtcharts qtconnectivity qtdatavis3d qtgraphs qtgrpc qthttpserver qtimageformats qtlanguageserver qtlocation qtlottie qtmultimedia qtnetworkauth qtpdf qtpositioning qtquick3d qtquick3dphysics qtquickeffectmaker qtquicktimeline qtremoteobjects qtscxml qtsensors qtserialbus qtserialport qtshadertools qtspeech qtvirtualkeyboard qtwebchannel qtwebengine qtwebsockets qtwebview' - name: msvc-build id: build shell: cmd run: | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }} ninja --version mkdir build cd build cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\6.6.0\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja .. cmake --build . --target all --config Release --parallel echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% echo vcToolsInstallDir=%VCToolsInstallDir% >> %GITHUB_ENV% echo vcToolsRedistDir=%VCToolsRedistDir% >> %GITHUB_ENV% - name: package id: package env: archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} msvcArch: ${{ matrix.msvc_arch }} shell: pwsh run: | & scripts\windows-publish.ps1 ${env:archiveName} ${env:targetName} # 记录packageName给后续step $name = ${env:archiveName} echo "::set-output name=packageName::$name" - uses: actions/upload-artifact@v2 with: name: ${{ steps.package.outputs.packageName }} path: dist - name: inno setup install if: startsWith(github.event.ref, 'refs/tags/') uses: zhuzichu520/inno-setup-action@v1.0.1 with: filepath: ./action-cli/InstallerScript.iss - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ./action-cli/installer.exe asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe tag: ${{ github.ref }} overwrite: true