111 lines
4.2 KiB
PowerShell
111 lines
4.2 KiB
PowerShell
<#
|
|
OMIKA - Compilation de l'application (mode test local)
|
|
=======================================================
|
|
Compile les 3 composants de l'application :
|
|
1. Omika.Api (API)
|
|
2. Omika.Worker (synchronisation)
|
|
3. Omika.App.Desktop (application de bureau Avalonia)
|
|
|
|
Par defaut en Debug. Avant de compiler, arrete les processus Omika en
|
|
cours (ils verrouillent les DLL de sortie -> erreur MSB3027) sauf si
|
|
-NoStop est passe.
|
|
|
|
Utilisation :
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File .\docs\build_omika_test.ps1
|
|
.\docs\build_omika_test.ps1 -Release # compiler en Release
|
|
.\docs\build_omika_test.ps1 -NoStop # ne pas arreter les processus
|
|
|
|
Pour lancer apres compilation :
|
|
.\docs\start_omika_test.ps1 -NoBuild
|
|
#>
|
|
[CmdletBinding()]
|
|
param(
|
|
[switch]$Release,
|
|
[switch]$NoStop
|
|
)
|
|
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
# Racine du depot = parent du dossier docs/ contenant ce script.
|
|
$root = Split-Path -Parent $PSScriptRoot
|
|
$config = if ($Release) { 'Release' } else { 'Debug' }
|
|
|
|
function Banner([string]$Text) {
|
|
Write-Host ''
|
|
Write-Host '============================================================' -ForegroundColor Cyan
|
|
Write-Host " $Text" -ForegroundColor Cyan
|
|
Write-Host '============================================================' -ForegroundColor Cyan
|
|
}
|
|
|
|
Banner "OMIKA - Compilation ($config)"
|
|
|
|
# ---------- Arret des processus en cours (liberation des DLL) ----------
|
|
if ($NoStop) {
|
|
Write-Host ''
|
|
Write-Host 'Arret des processus ignore (-NoStop).' -ForegroundColor DarkGray
|
|
Write-Host ' Attention : si l''application est en cours d''execution, la compilation echouera (DLL verrouillees).' -ForegroundColor Yellow
|
|
}
|
|
else {
|
|
Write-Host ''
|
|
Write-Host 'Arret des processus Omika en cours (pour liberer les DLL)...' -ForegroundColor Yellow
|
|
|
|
$desktop = Get-Process -Name 'Omika.App.Desktop' -ErrorAction SilentlyContinue
|
|
if ($desktop) {
|
|
$desktop | Stop-Process -Force -ErrorAction SilentlyContinue
|
|
Write-Host ' Application de bureau arretee.' -ForegroundColor Green
|
|
}
|
|
|
|
$dotnetProcs = Get-CimInstance Win32_Process -Filter "Name='dotnet.exe'" -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.CommandLine -like '*Omika.Api*' -or $_.CommandLine -like '*Omika.Worker*' }
|
|
|
|
if ($dotnetProcs) {
|
|
foreach ($proc in $dotnetProcs) {
|
|
Stop-Process -Id $proc.ProcessId -Force -ErrorAction SilentlyContinue
|
|
Write-Host " dotnet (PID $($proc.ProcessId)) arrete." -ForegroundColor Green
|
|
}
|
|
}
|
|
|
|
if (-not $desktop -and -not $dotnetProcs) {
|
|
Write-Host ' Aucun processus Omika en cours.' -ForegroundColor DarkGray
|
|
}
|
|
}
|
|
|
|
# ---------- Compilation ----------
|
|
$projects = @(
|
|
(Join-Path $root 'src\Omika.Api\Omika.Api.csproj'),
|
|
(Join-Path $root 'src\Omika.Worker\Omika.Worker.csproj'),
|
|
(Join-Path $root 'src\Omika.App.Desktop\Omika.App.Desktop.csproj')
|
|
)
|
|
|
|
$failed = $false
|
|
foreach ($project in $projects) {
|
|
Write-Host ''
|
|
Write-Host " > $project ($config)" -ForegroundColor Yellow
|
|
# CONTOURNEMENT TEMPORAIRE : --no-restore -m:1 evite l'echec MSB4276 lie au
|
|
# workload Android/iOS corrompu de cette machine (resolution SDK parallele).
|
|
# A retirer apres 'dotnet workload repair'.
|
|
dotnet build $project -c $config --nologo --no-restore -m:1
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host " [ERREUR] Echec de compilation : $project" -ForegroundColor Red
|
|
$failed = $true
|
|
break
|
|
}
|
|
}
|
|
|
|
# ---------- Resultat ----------
|
|
Banner 'Resultat'
|
|
|
|
if ($failed) {
|
|
Write-Host ' ECHEC de la compilation.' -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host " Compilation ($config) terminee avec succes." -ForegroundColor Green
|
|
Write-Host ''
|
|
Write-Host ' Binaires generes :' -ForegroundColor Cyan
|
|
Write-Host " API : src\Omika.Api\bin\$config\net10.0\Omika.Api.dll" -ForegroundColor Cyan
|
|
Write-Host " Worker : src\Omika.Worker\bin\$config\net10.0\Omika.Worker.dll" -ForegroundColor Cyan
|
|
Write-Host " Desktop : src\Omika.App.Desktop\bin\$config\net10.0\Omika.App.Desktop.exe" -ForegroundColor Cyan
|
|
Write-Host ''
|
|
Write-Host ' Pour lancer : .\docs\start_omika_test.ps1 -NoBuild' -ForegroundColor Cyan
|