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
+7
View File
@@ -124,6 +124,10 @@ param(
[string] $BuildCommand = '',
# Skip artifact packaging and collection in every child job.
# Set this for burn-in and smoke runs that use delay-only build commands.
[switch] $SkipArtifact,
[ValidateRange(1, 10)]
[int] $Parallelism = 4,
@@ -211,6 +215,9 @@ for ($r = 1; $r -le $Rounds; $r++) {
if ($BuildCommand -ne '') {
$argList.Add('-BuildCommand'); $argList.Add($BuildCommand)
}
if ($SkipArtifact) {
$argList.Add('-SkipArtifact')
}
$argArray = $argList.ToArray()