10998247a0
All shims defaulted to F:\CI\python\venv\Scripts\python.exe when CI_VENV_PYTHON was not set. On Linux host this caused instant failure. Now uses $IsWindows (PS 6+ automatic var; absent on PS 5.1 = Windows) to select /opt/ci/venv/bin/python on Linux. Windows paths unchanged. Affects: Invoke-CIJob, Get-BuildArtifacts, Cleanup-OrphanedBuildVMs, New-BuildVM, Remove-BuildVM, Wait-VMReady, Get-CIJobSummary, Invoke-RemoteBuild, Watch-DiskSpace, Watch-RunnerHealth, Set-CIGuestCredential, Test-CIGuestWinRM. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
70 lines
2.0 KiB
PowerShell
70 lines
2.0 KiB
PowerShell
#Requires -Version 5.1
|
|
Set-StrictMode -Version Latest
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
# Shim: delegates to the Python ci_orchestrator CLI (`artifacts collect`).
|
|
# Original PS implementation moved to git history; see plans/A3-closeout.md.
|
|
#
|
|
# The bound `-Credential` is intentionally discarded — Python uses keyring
|
|
# via `--credential-target` (defaulting to `BuildVMGuest`).
|
|
|
|
[CmdletBinding()]
|
|
param(
|
|
[Parameter(Mandatory)]
|
|
[string] $IPAddress,
|
|
|
|
[Parameter()]
|
|
[System.Management.Automation.PSCredential] $Credential,
|
|
|
|
[Parameter(Mandatory)]
|
|
[string] $GuestArtifactPath,
|
|
|
|
[Parameter(Mandatory)]
|
|
[string] $HostArtifactDir,
|
|
|
|
[switch] $IncludeLogs,
|
|
|
|
[ValidateSet('Windows', 'Linux')]
|
|
[string] $GuestOS = 'Windows',
|
|
|
|
[string] $SshKeyPath = 'F:\CI\keys\ci_linux',
|
|
[string] $SshUser = 'ci_build',
|
|
[string] $SshKnownHostsFile = '',
|
|
|
|
[string] $JobId = '',
|
|
[string] $Commit = '',
|
|
|
|
[string] $CredentialTarget = ''
|
|
)
|
|
|
|
$pyArgs = @(
|
|
'--ip-address', $IPAddress,
|
|
'--guest-os', $GuestOS.ToLower(),
|
|
'--guest-artifact-path', $GuestArtifactPath,
|
|
'--host-artifact-dir', $HostArtifactDir,
|
|
'--ssh-user', $SshUser,
|
|
'--ssh-key-path', $SshKeyPath,
|
|
'--job-id', $JobId,
|
|
'--commit', $Commit
|
|
)
|
|
|
|
if ($SshKnownHostsFile) { $pyArgs += @('--ssh-known-hosts-file', $SshKnownHostsFile) }
|
|
if ($CredentialTarget) { $pyArgs += @('--credential-target', $CredentialTarget) }
|
|
if ($IncludeLogs.IsPresent) { $pyArgs += '--include-logs' }
|
|
|
|
if ($Credential) {
|
|
Write-Host '[Get-BuildArtifacts] -Credential ignored; Python CLI uses keyring (set -CredentialTarget to override target name).'
|
|
}
|
|
|
|
$venvPython = $env:CI_VENV_PYTHON
|
|
if (-not $venvPython) {
|
|
# $IsWindows exists only on PS 6+; absent on PS 5.1 (always Windows)
|
|
if ($null -ne $IsWindows -and $IsWindows -eq $false) {
|
|
$venvPython = '/opt/ci/venv/bin/python'
|
|
} else {
|
|
$venvPython = 'F:\CI\python\venv\Scripts\python.exe'
|
|
}
|
|
}
|
|
& $venvPython -m ci_orchestrator artifacts collect @pyArgs
|
|
exit $LASTEXITCODE
|