mirror of
https://github.com/actions/runner-images.git
synced 2025-12-20 06:35:47 +00:00
Previously, we cached two versions since we prioritized hitting the toolcache over landing new releases quicker. However after experimenting with this, we have decided to prioritize getting new releases into customers' hands more quickly.
67 lines
2.1 KiB
PowerShell
67 lines
2.1 KiB
PowerShell
Describe "Toolset" {
|
|
$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
|
|
}
|
|
|
|
$toolExecs = $toolsExecutables[$toolName]
|
|
$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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|