Files
Omika/scripts/validate-phase5-dev.ps1
T
2026-10-23 18:46:50 +02:00

54 lines
2.3 KiB
PowerShell

# ============================================================
# Omika — Validation Phase 5 (poste développeur, 100 % Windows)
# ============================================================
# N'exécute QUE les projets nécessaires — jamais de build solution
# complet (évite NETSDK1139 android/ios, hors périmètre §7).
#
# Usage :
# .\scripts\validate-phase5-dev.ps1 # build parallèle standard
# .\scripts\validate-phase5-dev.ps1 -SingleNode # force -m:1 (CI / sandbox sans nœuds MSBuild parallèles)
#
# NB : AVALONIA_TELEMETRY_OPTOUT=1 désactive la télémétrie build Avalonia
# (requis dans certains environnements restreints ; sans effet sinon).
param(
[switch]$SingleNode
)
$ErrorActionPreference = 'Stop'
$env:AVALONIA_TELEMETRY_OPTOUT = '1'
$extra = @()
if ($SingleNode) { $extra = @('-m:1') }
$root = Split-Path -Parent $PSScriptRoot
# Gate 1 + Gate 2 (§8) : adapter OpenTelemetry, API, Worker
$steps = @(
@('build', "$root\src\Omika.Observability.External\Omika.Observability.External.csproj", '-c', 'Debug'),
@('build', "$root\src\Omika.Api\Omika.Api.csproj", '-c', 'Debug'),
@('build', "$root\src\Omika.Worker\Omika.Worker.csproj", '-c', 'Debug'),
# Gate 3 (§63) : tests Observability verts
@('test', "$root\tests\Omika.Tests\Omika.Tests.csproj", '-c', 'Debug', '--filter', 'FullyQualifiedName~Observability'),
# Diagnostic Center (Phase 5, §50)
@('build', "$root\src\Omika.Diagnostics.Core\Omika.Diagnostics.Core.csproj", '-c', 'Debug'),
@('build', "$root\src\Omika.Diagnostics.Data\Omika.Diagnostics.Data.csproj", '-c', 'Debug'),
@('build', "$root\src\Omika.Diagnostics.Worker\Omika.Diagnostics.Worker.csproj", '-c', 'Debug'),
@('build', "$root\src\Omika.Diagnostics.Web\Omika.Diagnostics.Web.csproj", '-c', 'Debug'),
# Tests Diagnostic Center SANS PostgreSQL réel (§51)
@('test', "$root\tests\Omika.Diagnostics.Tests\Omika.Diagnostics.Tests.csproj", '-c', 'Debug')
)
foreach ($step in $steps) {
$cmdArgs = $step + $extra
Write-Host "> dotnet $($cmdArgs -join ' ')" -ForegroundColor Cyan
& dotnet $cmdArgs
if ($LASTEXITCODE -ne 0) {
Write-Error "ÉCHEC : dotnet $($cmdArgs -join ' ') (exit $LASTEXITCODE)"
exit $LASTEXITCODE
}
}
Write-Host ''
Write-Host 'PHASE 5 — VALIDATION OK' -ForegroundColor Green