fix(burn-in): add -SkipArtifact switch; restore production fail-on-missing-dist

PROBLEM: Invoke-RemoteBuild.ps1 was creating a placeholder artifact when the build
produced no dist/ directory. In production this hides build defects (build exits 0
but produces nothing = silent failure treated as success).

SOLUTION: Add explicit -SkipArtifact switch to the call chain:

Invoke-RemoteBuild.ps1:
  - Add -SkipArtifact switch. When set: skips packaging entirely (no zip created).
  - When absent (production default): missing GuestArtifactSource is a hard error
    with a clear message pointing to -SkipArtifact as the opt-in for no-output builds.

Invoke-CIJob.ps1:
  - Add -SkipArtifact switch. Passes it to Invoke-RemoteBuild.ps1.
  - Phase 6 (Get-BuildArtifacts) is entirely skipped when set; logs 'skipped' event.

Test-CapacityBurnIn.ps1:
  - Add -SkipArtifact switch. Adds '-SkipArtifact' flag to each child job argList.

Start-BurnInTest.ps1:
  - Always passes -SkipArtifact by default (burn-in uses delay commands, no output).
  - Add -NoSkipArtifact override switch for runs that do produce real artifacts.
  - Remove -NoSkipArtifact escape from wrapper: default burn-in never needs artifacts.
This commit is contained in:
Simone
2026-05-12 21:28:11 +02:00
parent e0b45fc71d
commit 80eeb389af
4 changed files with 55 additions and 33 deletions
+3 -1
View File
@@ -49,6 +49,7 @@ param(
[int] $Rounds = 3,
[int] $Parallelism = 4,
[string] $BuildCommand = 'ping 127.0.0.1 -n 31 > nul',
[switch] $NoSkipArtifact,
[int] $RoundTimeoutMinutes = 60
)
@@ -71,6 +72,7 @@ $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
-BuildCommand $BuildCommand `
-Parallelism $Parallelism `
-Rounds $Rounds `
-RoundTimeoutMinutes $RoundTimeoutMinutes
-RoundTimeoutMinutes $RoundTimeoutMinutes `
$(if (-not $NoSkipArtifact) { '-SkipArtifact' })
exit $LASTEXITCODE