build-installer: run ISCC from the .iss directory (fixes Gitea runner)

Some ISCC builds reject deeply-nested absolute .iss paths (the runner
runs out of %SystemRoot%\System32\config\systemprofile\.cache\act\...)
with a misleading 'The system cannot find the path specified.' before
touching any source files. Push-Location to the .iss directory and
pass the bare filename - same effect, no path quirk.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 13:03:56 -04:00
parent f83d194002
commit b93759ff8a
+16 -5
View File
@@ -89,11 +89,22 @@ $dist = Join-Path $repoRoot 'dist'
New-Item -ItemType Directory -Path $dist -Force | Out-Null
Write-Host "Compiling installer with $iscc"
# /Qp gives quiet output but still prints the line each source file matches,
# which surfaces the exact source path that ISCC fails on (the default mode
# only logs "The system cannot find the path specified." with no detail).
& $iscc "/DAppVersion=$version" "/Qp" $iss
if ($LASTEXITCODE -ne 0) { throw 'Inno Setup compile failed' }
# Run ISCC from the .iss directory with just the bare filename. When invoked
# with a deeply-nested absolute path on the act-runner host (under
# %SystemRoot%\System32\config\systemprofile\...), ISCC sometimes prints a
# generic "The system cannot find the path specified." before it touches any
# source files. cd-ing first sidesteps it.
$issDir = Split-Path $iss -Parent
$issName = Split-Path $iss -Leaf
Push-Location $issDir
try {
Write-Host " cwd=$issDir"
& $iscc "/DAppVersion=$version" $issName
$exit = $LASTEXITCODE
} finally {
Pop-Location
}
if ($exit -ne 0) { throw "Inno Setup compile failed (exit $exit)" }
$out = Get-Item (Join-Path $dist "WebhookServer-Setup-$version.exe")
Write-Host ""