mirror of https://github.com/microsoft/autogen.git
64 lines
2.0 KiB
PowerShell
64 lines
2.0 KiB
PowerShell
# cd to the directory of this script
|
|
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
|
$rootPath = Split-Path -Parent $scriptPath
|
|
$outputFolder = "$rootPath/output"
|
|
if (Test-Path $outputFolder) {
|
|
Remove-Item $outputFolder -Recurse -Force
|
|
}
|
|
New-Item -ItemType Directory -Path $outputFolder
|
|
|
|
Set-Location $rootPath
|
|
|
|
# list all notebooks under notebook folder
|
|
$notebooks = Get-ChildItem -Path "$rootPath/notebook" -Recurse -Include *.ipynb | ForEach-Object { $_.FullName }
|
|
# skip those notebooks with the same name as the following
|
|
$skip_notebooks = @(
|
|
'TwoAgentChat_UserProxy.ipynb' # require user input
|
|
)
|
|
|
|
# for each notebook, run it using dotnet perl. Check the exit code and print out the result
|
|
# if the exit code is not 0, exit the script with exit code 1
|
|
$failNotebooks = @()
|
|
$exitCode = 0
|
|
$LASTEXITCODE = 0
|
|
foreach ($notebook in $notebooks) {
|
|
Write-Host "Running $notebook"
|
|
# get notebook name with extension
|
|
$name = Split-Path -Leaf $notebook
|
|
|
|
if ($skip_notebooks -contains $name) {
|
|
Write-Host "Skipping $name"
|
|
continue
|
|
}
|
|
Write-Host "Name: $name"
|
|
$notebookFolder = Split-Path -Parent $notebook
|
|
$outputPath = "$outputFolder\$notebookFolder"
|
|
Set-Location $notebookFolder
|
|
$proc = Start-Process -FilePath dotnet -ArgumentList "repl --run $name --exit-after-run" -PassThru -NoNewWindow
|
|
$timeout = $null
|
|
$proc | Wait-Process -Timeout 180 -ErrorAction SilentlyContinue -ErrorVariable $timeout
|
|
if ($timeout) {
|
|
Write-Host "Timeout when running $notebook"
|
|
$LASTEXITCODE = 1
|
|
}
|
|
else {
|
|
$LASTEXITCODE = $proc.ExitCode
|
|
}
|
|
Write-Host "Exit code: $LASTEXITCODE"
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "Failed to run $notebook"
|
|
$failNotebooks += $notebook
|
|
$exitCode = 1
|
|
}
|
|
else{
|
|
Write-Host "Successfully ran $notebook"
|
|
}
|
|
Set-Location $rootPath
|
|
}
|
|
|
|
Write-Host "Failed notebooks:"
|
|
foreach ($notebook in $failNotebooks) {
|
|
Write-Host $notebook
|
|
}
|
|
|
|
$failNotebooks | Should -BeNullOrEmpty |