fix(burn-in): use pwsh instead of powershell.exe on Linux host
powershell.exe does not exist on Linux — child process launch failed instantly (ExitCode null, Elapsed 00:00). Now selects powershell.exe on Windows and pwsh on Linux via $IsWindows automatic variable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -214,19 +214,20 @@ for ($r = 1; $r -le $Rounds; $r++) {
|
||||
|
||||
$argArray = $argList.ToArray()
|
||||
|
||||
# Start-Job runs a new PS session; call powershell.exe as child process
|
||||
# so exit $exitCode from Invoke-CIJob.ps1 is captured in $LASTEXITCODE.
|
||||
# Start-Job runs a new PS session; call the platform PS executable as child
|
||||
# process so exit $exitCode from Invoke-CIJob.ps1 is captured in $LASTEXITCODE.
|
||||
# NOTE: do NOT name the parameter $Args — @Args is a PS reserved splatting
|
||||
# alias for the automatic $Args variable (unbound arguments), which would
|
||||
# be empty here since the parameter binding consumed all positional args.
|
||||
$psExe = if ($IsWindows) { 'powershell.exe' } else { 'pwsh' }
|
||||
$psJob = Start-Job -ScriptBlock {
|
||||
param([string[]]$ChildArgs)
|
||||
$out = & powershell.exe @ChildArgs 2>&1
|
||||
param([string[]]$ChildArgs, [string]$PsExe)
|
||||
$out = & $PsExe @ChildArgs 2>&1
|
||||
[PSCustomObject]@{
|
||||
ExitCode = $LASTEXITCODE
|
||||
Output = ($out -join "`n")
|
||||
}
|
||||
} -ArgumentList (, $argArray)
|
||||
} -ArgumentList (, $argArray), $psExe
|
||||
|
||||
$jobEntries.Add(@{
|
||||
PSJob = $psJob
|
||||
|
||||
Reference in New Issue
Block a user