Sandboxie/.github/workflows/main.yml

345 lines
10 KiB
YAML
Raw Normal View History

2020-11-28 14:34:18 +00:00
name: CI
on:
2021-09-29 20:38:24 +01:00
workflow_dispatch:
2021-01-31 11:06:16 +00:00
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'
2021-01-31 11:06:16 +00:00
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'
2020-11-28 14:34:18 +00:00
2024-06-04 18:29:19 +01:00
env:
qt_version: 5.15.14
qt6_version: 6.3.1
openssl_version: 3.3.1
2024-06-21 09:59:45 +01:00
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
2024-06-04 18:29:19 +01:00
2020-11-28 14:34:18 +00:00
jobs:
2023-07-12 08:59:07 +01:00
Build_x64:
2021-09-09 21:09:47 +01:00
runs-on: windows-2019
2023-04-01 17:27:31 +01:00
timeout-minutes: 45
2021-12-08 05:05:13 +00:00
2020-11-28 14:34:18 +00:00
steps:
2020-11-28 15:23:26 +00:00
- name: Checkout code
2024-06-04 18:29:19 +01:00
uses: actions/checkout@v4.1.5
2020-11-28 16:25:50 +00:00
2021-09-09 20:59:05 +01:00
- name: Setup msbuild
uses: microsoft/setup-msbuild@v2
2020-11-28 16:25:50 +00:00
2022-11-20 17:25:39 +00:00
#
# Compile Sandboxie Core
#
- name: Build Sandboxie x86 (DLLs & svc)
2023-07-12 08:59:07 +01:00
run: msbuild /t:build Sandboxie\SandboxDll.sln /p:Configuration="SbieRelease" /p:Platform=Win32 -maxcpucount:8
2021-12-08 05:05:13 +00:00
2023-07-12 08:59:07 +01:00
- name: Build Sandboxie x64 (all)
2021-01-30 23:06:27 +00:00
run: msbuild /t:build Sandboxie\Sandbox.sln /p:Configuration="SbieRelease" /p:Platform=x64 -maxcpucount:8
2022-11-20 17:25:39 +00:00
#
# Prepare Qt Framework
#
2023-07-12 08:59:07 +01:00
# - name: Install Qt6 x64
2024-06-04 18:29:19 +01:00
# uses: jurplel/install-qt-action@v4.0.0
2023-07-12 08:59:07 +01:00
# 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
2022-10-12 20:13:44 +01:00
- name: Install Qt5 x64
2024-06-04 18:29:19 +01:00
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 }}
2021-01-30 22:20:06 +00:00
2021-01-30 22:23:57 +00:00
- name: Installing Jom
2022-10-15 09:57:38 +01:00
# if: steps.cache-qt.outputs.cache-hit != 'true'
2021-01-30 22:23:57 +00:00
run: SandboxiePlus\install_jom.cmd
2022-11-20 17:25:39 +00:00
#
# Compile Sandboxie Plus
#
2022-10-12 20:13:44 +01:00
- name: Build Sandboxie-Plus x64
2024-06-04 18:29:19 +01:00
run: SandboxiePlus\qmake_plus.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }}
2021-12-08 05:05:13 +00:00
2022-10-15 08:35:39 +01:00
- name: Build SbieShell x64
run: msbuild /t:restore,build -p:RestorePackagesConfig=true SandboxiePlus\SbieShell\SbieShell.sln /p:Configuration="Release" /p:Platform=x64
2022-05-15 13:03:52 +01:00
2022-11-20 17:25:39 +00:00
#
2023-05-04 22:13:12 +01:00
# Compile Sandboxie Tools
2022-11-20 17:25:39 +00:00
#
2023-05-04 22:13:12 +01:00
- name: Build Sandboxie-Tools x64
run: msbuild /t:build SandboxieTools\SandboxieTools.sln /p:Configuration="Release" /p:Platform=x64 -maxcpucount:8
2022-11-20 17:25:39 +00:00
#
2022-11-21 18:22:33 +00:00
# Merge everything together
2022-11-20 17:25:39 +00:00
#
2023-07-12 08:59:07 +01:00
# - name: Add Windows 7 compatible Qt6 DLLs
2024-06-04 18:29:19 +01:00
# run: Installer\fix_qt6_win7.cmd ${{ env.qt6_version }} ${{ env.ghQt6Win7_user }} ${{ env.ghQt6Win7_repo }}
2022-10-12 20:13:44 +01:00
2023-08-08 20:25:20 +01:00
- name: Add missing languages for Qt5 (issue 1528)
2024-06-04 18:29:19 +01:00
run: Installer\fix_qt5_languages.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }}
2023-08-08 20:25:20 +01:00
2023-08-24 20:05:06 +01:00
- name: Get openssl binaries
2024-06-04 18:29:19 +01:00
run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }}
2023-08-24 20:05:06 +01:00
- name: Get 7z binaries
run: Installer\get_7zip.cmd
- name: Merging Build
2024-06-04 18:29:19 +01:00
run: Installer\copy_build.cmd x64 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }}
2023-04-24 17:59:35 +01:00
- name: Collect installer assets
run: Installer\get_assets.cmd
- name: Upload installer assets
2024-06-04 18:29:19 +01:00
#if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v4.3.4
2023-04-24 17:59:35 +01:00
with:
name: Assets
path: |
Installer/Assets/*
retention-days: 60
2022-10-12 20:13:44 +01:00
- name: Upload Sandboxie x64
2024-06-04 18:29:19 +01:00
#if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v4.3.4
2022-10-12 20:13:44 +01:00
with:
name: Sandboxie_x64
path: |
Installer/SbiePlus_x64/*
retention-days: 60
2023-07-12 08:59:07 +01:00
Build_ARM64:
runs-on: windows-2019
timeout-minutes: 45
steps:
- name: Checkout code
2024-06-04 18:29:19 +01:00
uses: actions/checkout@v4.1.5
2023-07-12 08:59:07 +01:00
- name: Setup msbuild
uses: microsoft/setup-msbuild@v2
2023-07-12 08:59:07 +01:00
#
# Compile Sandboxie Core
#
- name: Build Sandboxie x86 (DLLs & svc)
2023-07-12 08:59:07 +01:00
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)
2023-07-12 08:59:07 +01:00
run: msbuild /t:build Sandboxie\SandboxDll.sln /p:Configuration="SbieRelease" /p:Platform=ARM64EC -maxcpucount:8
#
2024-02-01 21:12:19 +00:00
# Prepare Qt Framework for ARM64 (we also need Qt x64 for some utilities like qmake)
2023-07-12 08:59:07 +01:00
#
2024-01-04 20:37:10 +00:00
- name: Install Qt6 x64
2024-06-04 18:29:19 +01:00
uses: jurplel/install-qt-action@v4.0.0
2024-01-04 20:37:10 +00:00
with:
# version: '6.2.4'
2024-06-04 18:29:19 +01:00
version: '${{ env.qt6_version }}'
2024-01-04 20:37:10 +00:00
# dir: ..
# arch: ${{ matrix.qt-target }}
arch: 'win64_msvc2019_64'
# tools: 'tools_qtcreator,4.14.0-0-202012170949,qt.tools.qtcreator'
cache: true
2023-07-12 08:59:07 +01:00
- name: Install Qt6 ARM64
2024-06-04 18:29:19 +01:00
uses: jurplel/install-qt-action@v4.0.0
2023-07-12 08:59:07 +01:00
with:
# version: '6.2.4'
2024-06-04 18:29:19 +01:00
version: '${{ env.qt6_version }}'
2023-07-12 08:59:07 +01:00
# 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
2024-06-04 18:29:19 +01:00
run: SandboxiePlus\qmake_plus.cmd ARM64 ${{ env.qt_version }} ${{ env.qt6_version }}
2023-07-12 08:59:07 +01:00
- 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
2023-07-12 08:59:07 +01:00
#
# Merge everything together
#
2023-08-24 20:05:06 +01:00
- name: Get openssl binaries
2024-06-04 18:29:19 +01:00
run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }}
2023-08-24 20:05:06 +01:00
- name: Get 7z binaries
run: Installer\get_7zip.cmd
- name: Merging Build
2024-06-04 18:29:19 +01:00
run: Installer\copy_build.cmd ARM64 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }}
2021-01-30 22:20:06 +00:00
2022-10-12 20:13:44 +01:00
- name: Upload Sandboxie ARM64
2024-06-04 18:29:19 +01:00
#if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v4.3.4
2020-11-28 14:52:52 +00:00
with:
2022-10-12 20:13:44 +01:00
name: Sandboxie_ARM64
2020-11-28 14:52:52 +00:00
path: |
2022-10-12 20:13:44 +01:00
Installer/SbiePlus_a64/*
2021-12-08 05:05:13 +00:00
retention-days: 60
2023-07-12 08:59:07 +01:00
Build_x86:
runs-on: windows-2019
timeout-minutes: 45
steps:
- name: Checkout code
2024-06-04 18:29:19 +01:00
uses: actions/checkout@v4.1.5
2023-07-12 08:59:07 +01:00
- name: Setup msbuild
uses: microsoft/setup-msbuild@v2
2023-07-12 08:59:07 +01:00
#
# 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
2024-06-04 18:29:19 +01:00
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 }}
2023-07-12 08:59:07 +01:00
- name: Installing Jom
# if: steps.cache-qt.outputs.cache-hit != 'true'
run: SandboxiePlus\install_jom.cmd
#
# Compile Sandboxie Plus
#
- name: Build Sandboxie-Plus x86
2024-06-04 18:29:19 +01:00
run: SandboxiePlus\qmake_plus.cmd Win32 ${{ env.qt_version }} ${{ env.qt6_version }}
2023-07-12 08:59:07 +01:00
#
# Compile Sandboxie Tools
#
- name: Build Sandboxie-Tools x86
run: msbuild /t:build SandboxieTools\SandboxieTools.sln /p:Configuration="Release" /p:Platform=x86 -maxcpucount:8
2023-07-12 08:59:07 +01:00
#
# Merge everything together
#
2023-08-08 20:25:20 +01:00
- name: Add missing languages for Qt5 (issue 1528)
2024-06-04 18:29:19 +01:00
run: Installer\fix_qt5_languages.cmd Win32 ${{ env.qt_version }} ${{ env.qt6_version }}
2023-07-12 08:59:07 +01:00
2023-08-24 20:05:06 +01:00
- name: Get openssl binaries
2024-06-04 18:29:19 +01:00
run: Installer\get_openssl.cmd ${{ env.openssl_version }} ${{ env.ghSsl_user }} ${{ env.ghSsl_repo }}
2023-08-24 20:05:06 +01:00
- name: Get 7z binaries
run: Installer\get_7zip.cmd
- name: Merging Build
2024-06-04 18:29:19 +01:00
run: Installer\copy_build.cmd x86 ${{ env.qt_version }} ${{ env.qt6_version }} ${{ env.openssl_version }}
2023-07-12 08:59:07 +01:00
2022-10-12 20:13:44 +01:00
- name: Upload Sandboxie x86
2024-06-04 18:29:19 +01:00
#if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v4.3.4
2021-01-31 10:34:58 +00:00
with:
2022-10-12 20:13:44 +01:00
name: Sandboxie_x86
2021-01-31 10:34:58 +00:00
path: |
2022-10-12 20:13:44 +01:00
Installer/SbiePlus_x86/*
2021-12-08 05:05:13 +00:00
retention-days: 60