boinc
boinc copied to clipboard
Boinc installer 5065
Fixes https://github.com/BOINC/boinc/issues/5065, please review and send feedback.
Description of the Change
The change implements a new workflow that allows to build the installers for windows platform using the WiX toolset version 3.14.
Versions
Installers will be generated (supporting Windows 7 platform onward) for the following combinations:
- x64
- x64 with VirtualBox installer bundled
- ARM64
Prerequisites to build
The following software must be available in order to build locally:
- MSBuild 2022
- Powershell 7+
- WiX Toolkit 3.14
Secrets
Two Github secrets are necessary for correct operation of workflow:
- secrets.CERTIFICATE_FILE: This needs to point to a valid certificate file in PFX format, comprising of the certificate plus private key necessary for signing
-
secrets.CERTIFICATE_PASS: Password used for accessing the
CERTIFICATE_FILE
secret
Output
The generated installers have the nomenclature boinc_{version}_windows_{variant}.exe
, where:
-
version : is the value
BOINC_VERSION_STRING
extracted from fileversion.h
when on CI, if building locally it is the value passed toinstaller.ps1
-
variant : a string value depending on the selected variant (eg.
x86_64
,x86_64_vbox
,arm64
)
An example name for x64 version 7.24.0.0 would be: boinc_7.24.0.0_windows_x86_64.exe
.
Building and Integration
Workflow can be triggered by pushing on master
branch.
Locally, the 'build' and 'build/prerequisistes' folders must be created, their contents being:
-
build
: the contents of 'manager' and 'client' packages, required binaries (boinc.exe, boincmgr.exe, etc...) are checked for presence and additional files harvested and included in installation -
prerequisites
: if required by the variant (eg. x64+VirtualBox) the fileVirtualBox-7.0.10-158379-Win.exe
(https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe) is expected, empty otherwise
An additional prerequisite to execute the installer UI (bootstrapper application) is .NET 4.8 (4.8.1 if on ARM64), that has to be installed manually by the user prior to launching the installer (unless the user is on Windows 10+, which comes preinstalled with it).
Now the powershell script installer.ps1
can be invoked like so:
pwsh -f .\installer.ps1 -Version <version> -Type <type> -Certificate <pfx path> -CertificatePass <pfx password>
With 'type' being one of: x64
,x64_vbox
,arm64
.
After finishing execution the result can be found in build/
directory.
Release Notes
Building Windows installers with WiX toolkit