Files

60 lines
1.5 KiB
PowerShell

$runnerRoot = 'C:\xiaoxia-ci\act_runner'
$configPath = Join-Path $runnerRoot 'config.yaml'
$runnerExe = Join-Path $runnerRoot 'act_runner.exe'
$workDir = Join-Path $runnerRoot 'work'
$logDir = Join-Path $runnerRoot 'logs'
$results = [ordered]@{
runnerRootExists = Test-Path $runnerRoot
runnerExeExists = Test-Path $runnerExe
configExists = Test-Path $configPath
workDirExists = Test-Path $workDir
logDirExists = Test-Path $logDir
}
$processes = Get-CimInstance Win32_Process -ErrorAction SilentlyContinue |
Where-Object {
$_.Name -match 'act_runner' -or
$_.ExecutablePath -eq $runnerExe -or
$_.CommandLine -match 'act_runner'
} |
Select-Object ProcessId, Name, ExecutablePath, CommandLine
$results['runnerProcessCount'] = @($processes).Count
$logSummary = @()
if (Test-Path $logDir) {
$logSummary = Get-ChildItem $logDir -File -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending |
Select-Object -First 10 Name, LastWriteTime, Length
}
Write-Host '=== Runner Files ==='
$results.GetEnumerator() | ForEach-Object {
Write-Host ("{0}: {1}" -f $_.Key, $_.Value)
}
Write-Host "`n=== Runner Processes ==="
if (@($processes).Count -eq 0) {
Write-Host 'No runner process found.'
} else {
$processes | Format-Table -AutoSize
}
Write-Host "`n=== Recent Logs ==="
if (@($logSummary).Count -eq 0) {
Write-Host 'No runner logs found.'
} else {
$logSummary | Format-Table -AutoSize
}
if (-not $results['runnerExeExists'] -or -not $results['configExists']) {
exit 2
}
if (@($processes).Count -eq 0) {
exit 3
}
exit 0