#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 = 'ping 127.0.0.1 -n 31 > nul', [switch] $NoSkipArtifact, [int] $RoundTimeoutMinutes = 60 ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path & "$scriptDir\Test-CapacityBurnIn.ps1" ` -RepoUrl 'http://10.10.20.11:3100/ci/burnin-dummy.git' ` -Branch 'main' ` -TemplatePath 'F:\CI\Templates\WinBuild2025\WinBuild2025.vmx' ` -SnapshotName 'BaseClean' ` -CloneBaseDir 'F:\CI\BuildVMs' ` -ArtifactBaseDir 'F:\CI\Artifacts' ` -GuestCredentialTarget 'BuildVMGuest' ` -GiteaCredentialTarget 'GiteaPAT' ` -VmrunPath 'C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe' ` -GuestOS 'Auto' ` -BuildCommand $BuildCommand ` -Parallelism $Parallelism ` -Rounds $Rounds ` -RoundTimeoutMinutes $RoundTimeoutMinutes ` $(if (-not $NoSkipArtifact) { '-SkipArtifact' }) exit $LASTEXITCODE