816a15503e
Implements Phase A3 of plans/implementation-plan-A-B.md:
- commands/vm.py: vm new (replaces New-BuildVM.ps1)
- commands/build.py: build run (replaces Invoke-RemoteBuild.ps1) with WinRM/SSH dispatch and stdout streaming for act_runner
- commands/artifacts.py: artifacts collect (replaces Get-BuildArtifacts.ps1) using transport.fetch()
- 3 PS scripts reduced to shims preserving \0
- Pester tests/{New-BuildVM,Wait-VMReady,Remove-BuildVM}.Tests.ps1 removed; equivalent cases covered in pytest
- Phase C hook: build/artifacts accept opaque VmHandle/vmx; no Windows path assumptions
Tests: 91 pytest, ruff clean, mypy --strict clean, coverage 78.27% (>=70 gate).
Master checklist + step A3 attivita + 'definizione di fatto' updated; A3-closeout.md added.
1.5 KiB
1.5 KiB
A3 — Closeout
Fase A3 di plans/implementation-plan-A-B.md: pipeline core (clone → build → collect) in Python.
Branch: feature/python-rewrite-phase-a.
Stato attuale
commands/vm.pyesteso convm new(sostituisceNew-BuildVM.ps1)commands/build.pyconbuild run(sostituisceInvoke-RemoteBuild.ps1)commands/artifacts.pyconartifacts collect(sostituisceGet-BuildArtifacts.ps1)- Tutti i 3
.ps1ridotti a shim verso la CLI Python - Pester
tests/{New-BuildVM,Wait-VMReady,Remove-BuildVM}.Tests.ps1rimossi (casi negativi coperti dai pytest equivalenti) - 91 pytest, ruff/mypy --strict clean, coverage 78.27%
- Hook Fase C:
build run+artifacts collectaccettanoVmHandle/vmxopaco; nessuna assunzione path Windows - Smoke end-to-end manuale: clone WinBuild2025 → build script trivial → collect artifact ZIP
- Smoke end-to-end Linux equivalente
Definizione di "fatto" A3
| Criterio | Stato |
|---|---|
| Pipeline build completa via Python CLI | ✅ |
| Shim PS preservano API per caller esistenti | ✅ |
| Smoke build PASS contro VM reale Windows e Linux | ⏳ validazione hardware |
Pester New-BuildVM.Tests.ps1 rimosso e sostituito |
✅ |
Cosa resta a carico utente
- Smoke manuale end-to-end Windows:
python -m ci_orchestrator vm new ... && build run ... && artifacts collect ... - Stesso smoke su Linux template
- Verificare che
Test-NsinnounpBuild.ps1continui a passare invocando gli shim