60 lines
1.5 KiB
PowerShell
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
|