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.4 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.4 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.4 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.4 with: name: Sandboxie_x86 path: | Installer/SbiePlus_x86/* retention-days: 60