boinc icon indicating copy to clipboard operation
boinc copied to clipboard

Boinc installer 5065

Open parvit opened this issue 1 year ago • 0 comments

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 file version.h when on CI, if building locally it is the value passed to installer.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 file VirtualBox-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

parvit avatar Sep 20 '23 23:09 parvit