Files
local-ci-cd-system/scripts/archived/Start-BurnInTest.ps1
T
Simone 0b0d5486f0 chore(scripts): archive PowerShell scripts superseded by the Python CLI
Move 16 .ps1 files to scripts/archived/ — they have no live caller:

- 10 pure shims (New-BuildVM, Remove-BuildVM, Cleanup-OrphanedBuildVMs,
  Wait-VMReady, Invoke-RemoteBuild, Get-BuildArtifacts, Watch-DiskSpace,
  Watch-RunnerHealth, Get-CIJobSummary, Invoke-CIJob) that only forwarded
  to `ci_orchestrator`; the live Gitea composite action now calls
  `python -m ci_orchestrator job` directly.
- 6 Phase-C host tools reimplemented natively in Python (Start-BurnInTest
  [+ -Linux], Test-CapacityBurnIn → bench; Test-Smoke → smoke run;
  Validate-HostState → validate host; Set-CIGuestCredential → creds set).

Add scripts/archived/README.md mapping each file to its `ci` replacement,
and exempt scripts/archived/ from the PSScriptAnalyzer lint job.

Kept (still used / not yet ported): Register-CIScheduledTasks,
Backup-CITemplate, Invoke-RetentionPolicy, Set-TemplateSharedFolders,
Test-CIGuestWinRM, the e2e build harnesses, and all template/ guest
provisioning scripts.
2026-06-08 21:15:05 +02:00

78 lines
3.0 KiB
PowerShell

#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 '<pat>' -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