SDT/scripts/legacy/publish-sidecar.legacy.ps1
2026-03-01 20:52:56 -06:00

55 lines
1.6 KiB
PowerShell

param(
[string]$Configuration = "Release",
[string]$Runtime = "win-x64"
)
$commonScript = Join-Path $PSScriptRoot "script-common.ps1"
if (-not (Test-Path $commonScript)) {
throw "Missing helper script: $commonScript"
}
. $commonScript
$repoRoot = Resolve-JournalRepoRoot -StartPath $PSScriptRoot
$csproj = Resolve-JournalSidecarProjectPath -RepoRoot $repoRoot
$outputDir = Join-Path $repoRoot "output"
# Setup local dotnet environment (matches dotnet-min.ps1 logic)
Clear-JournalProxyEnv
Initialize-JournalDotnetEnv -RepoRoot $repoRoot
Write-Host "Publishing Journal.Sidecar ($Configuration, $Runtime)..." -ForegroundColor Cyan
Write-Host "Using project: $csproj" -ForegroundColor DarkGray
$publishArgs = @(
"publish", $csproj,
"-c", $Configuration,
"-r", $Runtime,
"--self-contained",
"-p:PublishSingleFile=true",
"-p:IncludeNativeLibrariesForSelfExtract=true",
"-p:RestoreIgnoreFailedSources=true",
"-p:NuGetAudit=false",
"-o", $outputDir
)
& dotnet @publishArgs
if ($LASTEXITCODE -eq 0) {
$binaryName = [System.IO.Path]::GetFileNameWithoutExtension($csproj)
$isWindowsRuntime = $Runtime -like "win-*"
$binaryFile = if ($isWindowsRuntime) { "$binaryName.exe" } else { $binaryName }
$binaryPath = Join-Path $outputDir $binaryFile
Write-Host "`nPublish successful!" -ForegroundColor Green
if (Test-Path $binaryPath) {
Write-Host "Executable location: $binaryPath" -ForegroundColor Gray
}
else {
Write-Host "Output directory: $outputDir" -ForegroundColor Gray
}
}
else {
Write-Host "`nPublish failed with exit code $LASTEXITCODE" -ForegroundColor Red
exit $LASTEXITCODE
}