#Requires -Version 5.1 <# .SYNOPSIS Wrapper di lancio per Test-CapacityBurnIn.ps1 con i parametri del lab locale. .DESCRIPTION Esegue il burn-in a 4 job / 3 round contro il repo burnin-dummy su Gitea. Tutti i parametri fissi del lab sono qui hardcoded; i parametri variabili (Rounds, Parallelism, BuildCommand) possono essere sovrascritti da CLI. Prerequisiti: - Repo burnin-dummy creato su Gitea (anche vuoto con branch main) - Credenziali guest nel Credential Manager target 'BuildVMGuest' - Gitea PAT nel Credential Manager target 'GiteaPAT' New-StoredCredential -Target 'GiteaPAT' -UserName 'ci' -Password '' -Persist LocalMachine - Template WinBuild2025 con snapshot BaseClean in stato powered-off - VMware Tools attivo nel guest (per auto-detect IP) Esempi di utilizzo: # Run completo (3 round, 4 job paralleli) .\Start-BurnInTest.ps1 # Smoke veloce (1 round, 2 job) .\Start-BurnInTest.ps1 -Rounds 1 -Parallelism 2 # Verifica parallelismo reale (build da 2 minuti, 1 round) .\Start-BurnInTest.ps1 -Rounds 1 -BuildCommand 'Start-Sleep 120' .PARAMETER Rounds Numero di round sequenziali. Default: 3. .PARAMETER Parallelism Job concorrenti per round. Default: 4. .PARAMETER BuildCommand Comando da eseguire nel guest come passo build (eseguito via cmd /c nel guest). Default: 'ping 127.0.0.1 -n 31 > nul' (attesa ~30s, nessun output reale). Quando il build command non produce la directory dist, Invoke-RemoteBuild crea automaticamente un artifact placeholder (build-ok.txt in zip) per permettere all'intero pipeline di completarsi. Usare 'ping 127.0.0.1 -n 601 > nul' per mantenere 4 VM attive ~600s e osservare la concorrenza prolungata. .PARAMETER RoundTimeoutMinutes Minuti massimi di attesa per ogni round prima di interrompere i job rimasti. Default: 60. #> param( [int] $Rounds = 3, [int] $Parallelism = 4, [string] $BuildCommand = 'powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -File build.ps1', [int] $RoundTimeoutMinutes = 60 ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $burnInParams = @{ RepoUrl = 'http://10.10.20.11:3100/Simone/burnin-dummy.git' Branch = 'main' TemplatePath = '/var/lib/ci/templates/WinBuild2025/WinBuild2025.vmx' SnapshotName = 'BaseClean' CloneBaseDir = '/var/lib/ci/build-vms/' ArtifactBaseDir = '/var/lib/ci/artifacts/' GuestCredentialTarget = 'BuildVMGuest' GiteaCredentialTarget = 'GiteaPAT' VmrunPath = '/usr/bin/vmrun' GuestOS = 'Auto' BuildCommand = $BuildCommand Parallelism = $Parallelism Rounds = $Rounds RoundTimeoutMinutes = $RoundTimeoutMinutes } & (Join-Path $PSScriptRoot 'Test-CapacityBurnIn.ps1') @burnInParams exit $LASTEXITCODE