Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
<#
|
||||
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
|
||||
Reference in New Issue
Block a user