mirror of
https://github.com/actions/runner-images.git
synced 2025-12-13 12:48:18 +00:00
86 lines
2.5 KiB
PowerShell
86 lines
2.5 KiB
PowerShell
################################################################################
|
|
## File: Configure-Toolset.ps1
|
|
## Team: CI-Build
|
|
## Desc: Configure Toolset
|
|
################################################################################
|
|
|
|
Function Set-DefaultVariables
|
|
{
|
|
param
|
|
(
|
|
[Parameter(Mandatory=$true)]
|
|
[object] $EnvVars,
|
|
[Parameter(Mandatory=$true)]
|
|
[string] $ToolVersionPath
|
|
)
|
|
|
|
$templates = $EnvVars.pathTemplates
|
|
foreach ($template in $templates)
|
|
{
|
|
$toolSystemPath = $template -f $ToolVersionPath
|
|
Add-MachinePathItem -PathItem $toolSystemPath | Out-Null
|
|
}
|
|
|
|
if (-not ([string]::IsNullOrEmpty($EnvVars.defaultVariable)))
|
|
{
|
|
setx $toolEnvVars.defaultVariable $ToolVersionPath /M | Out-Null
|
|
}
|
|
}
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
Import-Module -Name ImageHelpers -Force -DisableNameChecking
|
|
|
|
# Define executables for cached tools
|
|
$toolsEnvironmentVariables = @{
|
|
Python = @{
|
|
pathTemplates = @(
|
|
"{0}",
|
|
"{0}\Scripts"
|
|
)
|
|
}
|
|
Boost = @{
|
|
variableTemplate = "BOOST_ROOT_{0}_{1}_{2}"
|
|
}
|
|
go = @{
|
|
pathTemplates = @(
|
|
"{0}\bin"
|
|
)
|
|
defaultVariable = "GOROOT"
|
|
variableTemplate = "GOROOT_{0}_{1}_X64"
|
|
}
|
|
}
|
|
|
|
$toolsToConfigure = @("Python", "Boost", "Go")
|
|
$tools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache `
|
|
| Where-Object { $toolsToConfigure -contains $_.name }
|
|
|
|
Write-Host "Configure toolset tools environment..."
|
|
foreach ($tool in $tools)
|
|
{
|
|
$toolEnvVars = $toolsEnvironmentVariables[$tool.name]
|
|
|
|
if (-not ([string]::IsNullOrEmpty($toolEnvVars.variableTemplate)))
|
|
{
|
|
foreach ($version in $tool.versions)
|
|
{
|
|
Write-Host "Set $($tool.name) $version environment variable..."
|
|
|
|
$foundVersionArchPath = Get-ToolsetToolFullPath -Name $tool.name -Version $version -Arch $tool.arch
|
|
$envName = $toolEnvVars.variableTemplate -f $version.Split(".")
|
|
|
|
setx $envName $foundVersionArchPath /M | Out-Null
|
|
}
|
|
}
|
|
|
|
if (-not ([string]::IsNullOrEmpty($tool.default)))
|
|
{
|
|
Write-Host "Use $($tool.name) $($tool.default) as a system $($tool.name)..."
|
|
|
|
$toolVersionPath = Get-ToolsetToolFullPath -Name $tool.name -Version $tool.default -Arch $tool.arch
|
|
|
|
Set-DefaultVariables -ToolVersionPath $toolVersionPath -EnvVars $toolEnvVars
|
|
}
|
|
}
|
|
|
|
Invoke-PesterTests -TestFile "Toolset" |