Skip to content

ci: build a test-signed MSI installer - #148

Open
eiz-claude wants to merge 1 commit into
vnextfrom
mack/ci-installer
Open

eiz-claude wants to merge 1 commit into
vnextfrom
mack/ci-installer

Conversation

@eiz-claude

@eiz-claude eiz-claude commented Oct 3, 2026 •

Copy link
Copy Markdown
Collaborator

Adds an installer job to build.yml that builds the WiX SarInstaller project into a test-signed MSI, so a CI build can be installed by hand.

  • Builds SarInstallerActions (x64) and packages the test-signed driver from the driver job with the x64 and x86 SarAsio builds from the usermode jobs.
  • WiX comes from the pinned 3.14 binaries zip, verified by SHA-256, not from whatever the runner image has.
  • Uploads sar-installer-x64-testsigned: the MSI, that run's testsign.cer, SHA256SUMS and a README with the install steps (test signing on, trust the certificate in Root and TrustedPublisher, msiexec /i). It only installs on machines with test signing on. A redistributable MSI has to wrap the attestation-signed driver, so it can only be built after signing.
  • Product.wxs takes its input paths and version from preprocessor variables. The defaults are the old relative paths, so a Visual Studio build works as before.
  • The wixproj finds the difxapp wixlibs through $(WixExtDir) instead of a hard-coded WiX 3.10 install path.
  • SarInstallerActions also searches the WiX 3.14 SDK's sdk\inc.
  • CI also runs on pushes to vnext and on every PR, whatever its base branch, so PRs stacked on this one get builds.

Tested

  • Fork CI run: all four jobs pass; the MSI is 2.2 MB.

  • On the Windows 11 25H2 test VM (test signing on, Driver Verifier on), I installed that run's MSI silently, checked the state after install and after uninstall, then restored the VM:

    after install after uninstall
    msiexec exit code 0 0
    SAR device node ROOT\MEDIA\0000, status OK, hardware ID SW\{0BCFFA5C-…} gone
    SynchronousAudioRouter driver running from system32\drivers gone
    Driver store entry present, signer "SAR CI test signing" gone
    ASIO registration (64-bit and WOW64) present, CLSIDs point to SarAsio_x64.dll / SarAsio.dll gone
    Files and Start menu shortcut present gone

🤖 Generated with Claude Code

Adds an installer job that builds SarInstallerActions and the WiX
SarInstaller project around the test-signed driver and the x64/x86
SarAsio builds, and uploads it with the test certificate and install
steps as sar-installer-x64-testsigned. WiX comes from the pinned 3.14
binaries zip, checked by hash.

Product.wxs takes its input locations and version from preprocessor
variables (defaulting to the old relative paths), the wixproj finds the
difxapp wixlibs through $(WixExtDir) instead of a hard-coded WiX 3.10
install, and SarInstallerActions also looks in the WiX 3.14 SDK's
include directory.

CI now also runs on pushes to vnext and on every PR, so PRs stacked on
other branches get builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@eiz-claude
eiz-claude added this pull request to stack #154 October 3, 2026 15:01
@eiz
eiz marked this pull request as ready for review October 3, 2026 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants