Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflow for building Windows installers #5355

Closed
wants to merge 104 commits into from

Conversation

parvit
Copy link
Contributor

@parvit parvit commented Sep 9, 2023

Fixes #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

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
Copy link
Contributor Author

parvit commented Sep 9, 2023

@AenBleidd please review and send feedback.

@talregev
Copy link
Contributor

@parvit You should fix your conflicts.

@AenBleidd
Copy link
Member

AenBleidd commented Sep 19, 2023

@parvit You should fix your conflicts.

This was already discussed is a separate chat

@parvit parvit closed this Sep 20, 2023
@parvit
Copy link
Contributor Author

parvit commented Sep 20, 2023

Will reopen from different branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

[Windows] Move existing InstallShield installer to the WiX Toolset
3 participants