mirror of
https://github.com/actions/runner-images.git
synced 2025-12-11 03:27:05 +00:00
66 lines
2.1 KiB
PowerShell
66 lines
2.1 KiB
PowerShell
Describe "Toolset" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
|
|
$tools = (Get-ToolsetContent).toolcache
|
|
|
|
$toolsExecutables = @{
|
|
Python = @{
|
|
tools = @("python", "bin/pip")
|
|
command = "--version"
|
|
}
|
|
node = @{
|
|
tools = @("bin/node", "bin/npm")
|
|
command = "--version"
|
|
}
|
|
PyPy = @{
|
|
tools = @("bin/python", "bin/pip")
|
|
command = "--version"
|
|
}
|
|
go = @{
|
|
tools = @("bin/go")
|
|
command = "version"
|
|
}
|
|
Ruby = @{
|
|
tools = @("bin/ruby")
|
|
command = "--version"
|
|
}
|
|
CodeQL = @{
|
|
tools = @("codeql/codeql")
|
|
command = "version"
|
|
}
|
|
}
|
|
|
|
foreach ($tool in $tools) {
|
|
$toolName = $tool.Name
|
|
Context "$toolName" {
|
|
$toolExecs = $toolsExecutables[$toolName]
|
|
|
|
foreach ($version in $tool.versions) {
|
|
# Add wildcard if missing
|
|
if ($version.Split(".").Length -lt 3) {
|
|
$version += ".*"
|
|
}
|
|
|
|
$expectedVersionPath = Join-Path $env:AGENT_TOOLSDIRECTORY $toolName $version
|
|
|
|
It "$version version folder exists" -TestCases @{ ExpectedVersionPath = $expectedVersionPath} {
|
|
$ExpectedVersionPath | Should -Exist
|
|
}
|
|
|
|
$foundVersion = Get-Item $expectedVersionPath `
|
|
| Sort-Object -Property {[SemVer]$_.name} -Descending `
|
|
| Select-Object -First 1
|
|
$foundVersionPath = Join-Path $foundVersion $tool.arch
|
|
|
|
if ($toolExecs) {
|
|
foreach ($executable in $toolExecs["tools"]) {
|
|
$executablePath = Join-Path $foundVersionPath $executable
|
|
|
|
It "Validate $executable" -TestCases @{ExecutablePath = $executablePath} {
|
|
$ExecutablePath | Should -Exist
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|