Sandboxie/.github/workflows/main.yml

255 lines
6.5 KiB
YAML

name: CI
on:
workflow_dispatch:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
Build_x64:
runs-on: windows-2019
timeout-minutes: 45
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup msbuild
uses: microsoft/setup-msbuild@v1.3
#
# Compile Sandboxie Core
#
- name: Build Sandboxie x86 (dll's & 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@v3
# 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
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
# dir: ..
# arch: ${{ matrix.qt-target }}
arch: 'win64_msvc2019_64'
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
# cached: ${{ steps.cache-qt.outputs.cache-hit }}
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 x64
run: SandboxiePlus\qmake_plus.cmd x64
- 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
- name: Merging Builds
run: Installer\merge_builds.cmd
- name: Collect installer assets
run: Installer\get_assets.cmd
- name: Upload installer assets
uses: actions/upload-artifact@v3
with:
name: Assets
path: |
Installer/Assets/*
retention-days: 60
- name: Upload Sandboxie x64
uses: actions/upload-artifact@v3
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@v3
- name: Setup msbuild
uses: microsoft/setup-msbuild@v1.3
#
# Compile Sandboxie Core
#
- name: Build Sandboxie x86 (dll's & 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
#
- name: Install Qt6 ARM64
uses: jurplel/install-qt-action@v3
with:
# version: '6.2.4'
version: '6.3.1'
# 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
- 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: Merging Builds
run: Installer\merge_builds.cmd
- name: Upload Sandboxie ARM64
uses: actions/upload-artifact@v3
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@v3
- name: Setup msbuild
uses: microsoft/setup-msbuild@v1.3
#
# 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
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
# dir: ..
# arch: ${{ matrix.qt-target }}
arch: 'win32_msvc2019'
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
# cached: ${{ steps.cache-qt.outputs.cache-hit }}
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 x86
run: SandboxiePlus\qmake_plus.cmd Win32
#
# 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 x86 (issue 1528)
run: Installer\fix_qt5_languages.cmd Win32
- name: Merging Builds
run: Installer\merge_builds.cmd
- name: Upload Sandboxie x86
uses: actions/upload-artifact@v3
with:
name: Sandboxie_x86
path: |
Installer/SbiePlus_x86/*
retention-days: 60