90a4396443
- Updated README.md to reflect the new in-VM git clone feature with `-UseGitClone`. - Modified Setup-Host.ps1 to correct VMX path references. - Revised various documentation files (ARCHITECTURE.md, CI-FLOW.md, HOST-SETUP.md, WINDOWS-TEMPLATE-SETUP.md) to include updated paths and features. - Added Setup-GiteaSSH.md for SSH configuration instructions. - Archived outdated documentation and updated README.md for clarity on current resources.
2.3 KiB
2.3 KiB
Local CI/CD System — Design & Status
Sistema implementato e operativo (2026-05-08)
Hardware
- Windows 11 host — CPU i9-10900X, 64 GB RAM, NVMe SSD
Hypervisor
- VMware Workstation Pro
- Template VM: Windows Server 2025
- VMX:
F:\CI\Templates\WinBuild\CI-WinBuild.vmx - Snapshot:
BaseClean - Toolchain: VS Build Tools 2026 (MSBuild 18.5.4 / v145), .NET SDK 10.0.203, Python 3.13.3
- VMX:
CI System
- Gitea self-hosted —
http://10.10.20.11:3100 - act_runner v1.0.2 — Windows service su host, label
windows-build - Build VMs: subnet VMnet8 NAT —
192.168.79.0/24 - WinRM HTTPS/5986 (Basic auth over HTTPS, self-signed cert, SkipCACheck lab-only)
Architettura implementata
- Gitea Actions enqueue job → act_runner lo prende
Invoke-CIJob.ps1orchestra 6 fasi:- Phase 1:
git clonerepo (con submoduli) su host inC:\Temp\ci-src-<jobid> - Phase 2:
New-BuildVM.ps1— linked clone da template snapshotBaseClean - Phase 3:
vmrun startVM headless - Phase 4:
Wait-VMReady.ps1— polling WinRM readiness (~5s) - Phase 5:
Invoke-RemoteBuild.ps1— trasferisce sorgente (zip), esegue build via WinRM, raccoglieartifacts.zip - Phase 6:
Get-BuildArtifacts.ps1— copia zip inF:\CI\Artifacts\<jobid>\
- Phase 1:
finally:Remove-BuildVM.ps1— stop VM + rimozione directory clone
Caso d'uso implementato e testato
- Repo:
Simone/nsis-plugin-nsinnounp(NSIS plugin C++ — MSBuild) - Build command:
python build_plugin.py --final --dist-dir dist - 4 configurazioni parallele: x86-unicode, x64-unicode, cli-x86, cli-x64
- Artifact:
dist/x86-unicode/nsInnoUnp.dll,dist/amd64-unicode/nsInnoUnp.dll,dist/nsInnoUnpCLI.exe,dist/nsInnoUnpCLI64.exe - e2e-009: SUCCESS in 02:09, cleanup automatico confermato
Fix critici applicati durante sviluppo
- TRK0002 Windows quota exhaustion:
build_plugin.pydivide thread count per numero di build parallele - MSBuild detection per VS 2026: fix in
build_plugin.pyper vswhere con VS 2026 BuildTools - Output filter nascondeva errori: filtro cambiato da substring a prefix match
- --dist-dir: nuovo flag per raccogliere artifact in cartella piatta pre-clean
- --no-clean / --no-copy: flag CI-friendly per skip cleanup e skip copia verso plugins dir