@@ -568,6 +568,51 @@ jobs:
568568 echo "Generated SBOM bundles: ${SIGNED_COUNT}"
569569 ls "${CALLER_DIST}"/*.sbom.sigstore.json 2>/dev/null || echo "ℹ️ No SBOM bundles generated (GoReleaser may not have generated SBOMs)"
570570
571+ # Temporary: verify MSI installs correctly on Windows (remove before merge)
572+ - name : Test MSI installation
573+ shell : pwsh
574+ env :
575+ REPO_NAME : ${{ github.event.repository.name }}
576+ run : |
577+ $msi = Get-ChildItem "_caller/dist/*.msi" | Select-Object -First 1
578+ if (-not $msi) {
579+ Write-Host "WARNING: No MSI found in dist, skipping install test"
580+ exit 0
581+ }
582+
583+ Write-Host "Testing MSI: $($msi.Name)"
584+
585+ # Install
586+ $process = Start-Process msiexec -ArgumentList "/i", $msi.FullName, "/qn", "/l*v", "install.log" -Wait -PassThru
587+ Write-Host "Install exit code: $($process.ExitCode)"
588+ if ($process.ExitCode -ne 0) {
589+ Get-Content "install.log" | Select-Object -Last 30
590+ exit 1
591+ }
592+
593+ # Verify binary exists
594+ $installDir = "C:\Program Files\ConductorOne"
595+ Write-Host "Install directory contents:"
596+ Get-ChildItem $installDir -Recurse | ForEach-Object { Write-Host " $($_.FullName)" }
597+
598+ $binary = Get-ChildItem $installDir -Filter "$env:REPO_NAME.exe" -Recurse | Select-Object -First 1
599+ if (-not $binary) {
600+ Write-Host "ERROR: $env:REPO_NAME.exe not found"
601+ exit 1
602+ }
603+ Write-Host "Found: $($binary.FullName) ($($binary.Length) bytes)"
604+
605+ # Run binary
606+ & $binary.FullName --help 2>&1 | Select-Object -First 5
607+ Write-Host "Binary executes successfully"
608+
609+ # Uninstall
610+ $process = Start-Process msiexec -ArgumentList "/x", $msi.FullName, "/qn" -Wait -PassThru
611+ Write-Host "Uninstall exit code: $($process.ExitCode)"
612+ if (-not (Test-Path $installDir)) {
613+ Write-Host "Uninstall cleanup verified"
614+ }
615+
571616 - name : Configure AWS credentials via OIDC
572617 uses : aws-actions/configure-aws-credentials@v5
573618 with :
0 commit comments