From 97a2b27d769393f622009e410ead7a7c784cc2c1 Mon Sep 17 00:00:00 2001 From: olivezane <113267247+olivezane@users.noreply.github.com> Date: Fri, 8 Nov 2024 22:13:57 +0800 Subject: [PATCH] Create clack.yaml --- .github/workflows/clack.yaml | 344 +++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 .github/workflows/clack.yaml diff --git a/.github/workflows/clack.yaml b/.github/workflows/clack.yaml new file mode 100644 index 0000000000..84f595ace8 --- /dev/null +++ b/.github/workflows/clack.yaml @@ -0,0 +1,344 @@ +name: CI + +on: + workflow_dispatch: + + push: + branches: [ master ] + paths-ignore: + # Case-sensitive paths to ignore on push events + - '.editorconfig' + - '.gitattributes' + - '.gitignore' + - 'MergeDbg.cmd' + - 'TestCI.cmd' + - '.github/codeql/codeql-config.yml' + - '.github/ISSUE_TEMPLATE/**' + - '.github/workflows/codeql.yml' + - '.github/workflows/codespell.yml' + - '.github/workflows/lupdate.yml' + - '.github/workflows/stale.yml' + - '.github/workflows/test.yml' + - '.github/workflows/winget.yml' + - '.github/FUNDING.yml' + - '.github/dependabot.yml' + - 'Sandboxie/msgs/report/*.txt' + - '**/*.md' + - '**/*.html' + - '**/*.png' + - '**/*.bmp' + - '**/LICENSE*' + - '**/license*' + - '**/README*' + - '**/ReadMe*' + - '**/INSTALL*' + - '**/AUTHORS' + - '**/COPYING' + pull_request: + branches: [ master ] + paths-ignore: + # Case-sensitive paths to ignore on pull events + - '.editorconfig' + - '.gitattributes' + - '.gitignore' + - 'MergeDbg.cmd' + - 'TestCI.cmd' + - '.github/codeql/codeql-config.yml' + - '.github/ISSUE_TEMPLATE/**' + - '.github/workflows/codeql.yml' + - '.github/workflows/codespell.yml' + - '.github/workflows/lupdate.yml' + - '.github/workflows/stale.yml' + - '.github/workflows/test.yml' + - '.github/workflows/winget.yml' + - '.github/FUNDING.yml' + - '.github/dependabot.yml' + - 'Sandboxie/msgs/report/*.txt' + - '**/*.md' + - '**/*.html' + - '**/*.png' + - '**/*.bmp' + - '**/LICENSE*' + - '**/license*' + - '**/README*' + - '**/ReadMe*' + - '**/INSTALL*' + - '**/AUTHORS' + - '**/COPYING' + +env: + qt_version: 5.15.14 + qt6_version: 6.3.1 + openssl_version: 3.3.1 + ghSsl_user: xanasoft + ghSsl_repo: openssl-builds + #ghQt6Win7_user: DavidXanatos + #ghQt6Win7_repo: qtbase + ghQtBuilds_user: xanasoft + ghQtBuilds_repo: qt-builds + ghQtBuilds_hash_x86: bf4124046cc50ccbbeb3f786c041e884fd4205cd6e616070a75c850105cbf1db + ghQtBuilds_hash_x64: 30290d82a02bfaa24c1bf37bcb9c074aba18a673a7176628fccdf71197cee898 + +jobs: + Build_x64: + runs-on: windows-2019 + timeout-minutes: 45 + + steps: + - name: Checkout code + uses: actions/checkout@v4.1.5 + + - name: Setup msbuild + uses: microsoft/setup-msbuild@v2 + + # + # Compile Sandboxie Core + # + + - name: Build Sandboxie x86 (DLLs & svc) + run: msbuild /t:build Sandboxie\SandboxDll.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8 + + - name: Build Sandboxie x64 (all) + run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=x64 -maxcpucount:8 + + # + # Prepare Qt Framework + # + +# - name: Install Qt6 x64 +# uses: jurplel/install-qt-action@v4.0.0 +# with: +# # version: '6.2.4' +# version: '6.3.1' +# # dir: .. +# # arch: ${{ matrix.qt-target }} +# arch: 'win64_msvc2019_64' +# # tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator' +# cache: true + + - name: Install Qt5 x64 + run: SandboxiePlus\install_qt.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.ghQtBuilds_user }} ${{ env.ghQtBuilds_repo }} ${{ env.ghQtBuilds_hash_x86 }} ${{ env.ghQtBuilds_hash_x64 }} + + - name: Installing Jom + # if: steps.cache-qt.outputs.cache-hit != 'true' + run: SandboxiePlus\install_jom.cmd + + # + # Compile Sandboxie Plus + # + + - name: Build Sandboxie-Plus x64 + run: SandboxiePlus\qmake_plus.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }} + + - name: Build SbieShell x64 + run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=x64 + + # + # Compile Sandboxie Tools + # + + - name: Build Sandboxie-Tools x64 + run: msbuild /t:build SandboxieTools\SandboxieTools.sln /p:Configuration="Release" /p:Platform=x64 -maxcpucount:8 + + # + # Merge everything together + # + +# - name: Add Windows 7 compatible Qt6 DLLs +# run: Installer\fix_qt6_win7.cmd ${{ env.qt6_version }} ${{ env.ghQt6Win7_user }} ${{ env.ghQt6Win7_repo }} + + - name: Add missing languages for Qt5 (issue 1528) + run: Installer\fix_qt5_languages.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }} + + - name: Get openssl binaries + run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }} + + - name: Get 7z binaries + run: Installer\get_7zip.cmd + + - name: Merging Build + run: Installer\copy_build.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }} + + - name: Collect installer assets + run: Installer\get_assets.cmd + + - name: Upload installer assets + #if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + uses: actions/upload-artifact@v4.3.3 + with: + name: Assets + path: | + Installer/Assets/* + retention-days: 60 + + - name: Upload Sandboxie x64 + #if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + uses: actions/upload-artifact@v4.3.3 + with: + name: Sandboxie_x64 + path: | + Installer/SbiePlus_x64/* + retention-days: 60 + + + Build_ARM64: + runs-on: windows-2019 + timeout-minutes: 45 + + steps: + - name: Checkout code + uses: actions/checkout@v4.1.5 + + - name: Setup msbuild + uses: microsoft/setup-msbuild@v2 + + # + # Compile Sandboxie Core + # + + - name: Build Sandboxie x86 (DLLs & svc) + run: msbuild /t:build Sandboxie\SandboxDll.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8 + + - name: Build Sandboxie ARM64 (all) + run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=ARM64 -maxcpucount:8 + + - name: Build Sandboxie ARM64EC (DLL) + run: msbuild /t:build Sandboxie\SandboxDll.sln /p:Configuration="SbieRelease" /p:Platform=ARM64EC -maxcpucount:8 + + # + # Prepare Qt Framework for ARM64 (we also need Qt x64 for some utilities like qmake) + # + + - name: Install Qt6 x64 + uses: jurplel/install-qt-action@v4.0.0 + with: + # version: '6.2.4' + version: '${{ env.qt6_version }}' + # dir: .. + # arch: ${{ matrix.qt-target }} + arch: 'win64_msvc2019_64' + # tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator' + cache: true + + - name: Install Qt6 ARM64 + uses: jurplel/install-qt-action@v4.0.0 + with: + # version: '6.2.4' + version: '${{ env.qt6_version }}' + # dir: .. + # arch: ${{ matrix.qt-target }} + arch: 'win64_msvc2019_arm64' + # tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator' + cache: true + + - name: Installing Jom + # if: steps.cache-qt.outputs.cache-hit != 'true' + run: SandboxiePlus\install_jom.cmd + + # + # Compile Sandboxie Plus + # + + - name: Build Sandboxie-Plus ARM64 + run: SandboxiePlus\qmake_plus.cmd ARM64 ${{ env.qt_version }} ${{ env.qt6_version }} + + - name: Build SbieShell ARM64 + run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=ARM64 + + # + # Compile Sandboxie Tools + # + + - name: Build Sandboxie-Tools ARM64 + run: msbuild /t:build SandboxieTools\SandboxieTools.sln /p:Configuration="Release" /p:Platform=ARM64 -maxcpucount:8 + + # + # Merge everything together + # + + - name: Get openssl binaries + run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }} + + - name: Get 7z binaries + run: Installer\get_7zip.cmd + + - name: Merging Build + run: Installer\copy_build.cmd ARM64 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }} + + - name: Upload Sandboxie ARM64 + #if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + uses: actions/upload-artifact@v4.3.3 + with: + name: Sandboxie_ARM64 + path: | + Installer/SbiePlus_a64/* + retention-days: 60 + + + Build_x86: + runs-on: windows-2019 + timeout-minutes: 45 + + steps: + - name: Checkout code + uses: actions/checkout@v4.1.5 + + - name: Setup msbuild + uses: microsoft/setup-msbuild@v2 + + # + # Compile Sandboxie Core + # + + - name: Build Sandboxie x86 (all) + run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8 + + # + # Prepare Qt Framework + # + + - name: Install Qt5 x86 + run: SandboxiePlus\install_qt.cmd Win32 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.ghQtBuilds_user }} ${{ env.ghQtBuilds_repo }} ${{ env.ghQtBuilds_hash_x86 }} ${{ env.ghQtBuilds_hash_x64 }} + + - name: Installing Jom + # if: steps.cache-qt.outputs.cache-hit != 'true' + run: SandboxiePlus\install_jom.cmd + + # + # Compile Sandboxie Plus + # + + - name: Build Sandboxie-Plus x86 + run: SandboxiePlus\qmake_plus.cmd Win32 ${{ env.qt_version }} ${{ env.qt6_version }} + + # + # Compile Sandboxie Tools + # + + - name: Build Sandboxie-Tools x86 + run: msbuild /t:build SandboxieTools\SandboxieTools.sln /p:Configuration="Release" /p:Platform=x86 -maxcpucount:8 + + # + # Merge everything together + # + + - name: Add missing languages for Qt5 (issue 1528) + run: Installer\fix_qt5_languages.cmd Win32 ${{ env.qt_version }} ${{ env.qt6_version }} + + - name: Get openssl binaries + run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }} + + - name: Get 7z binaries + run: Installer\get_7zip.cmd + + - name: Merging Build + run: Installer\copy_build.cmd x86 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }} + + - name: Upload Sandboxie x86 + #if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' + uses: actions/upload-artifact@v4.3.3 + with: + name: Sandboxie_x86 + path: | + Installer/SbiePlus_x86/* + retention-days: 60