mirror of
https://github.com/actions/runner-images.git
synced 2025-12-20 06:35:47 +00:00
Previously, our runner image only included the most recent release of CodeQL. In order to improve stability of rollout of new CodeQL versions, we are now downloading the most recent two releases. The change updates the Linux and Windows script variable names to match that of the Mac script, because they are mostly functionally identical. It also adds the same log messages to all scripts and ensures Mac and Windows test parity. It tests that there are two bundles in each of the OS's as well. This will approximately double the total size and installation time of the existing CodeQL tool.
226 lines
7.2 KiB
PowerShell
226 lines
7.2 KiB
PowerShell
Describe "Azure Cosmos DB Emulator" {
|
|
$cosmosDbEmulatorRegKey = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | Get-ItemProperty | Where-Object { $_.DisplayName -eq 'Azure Cosmos DB Emulator' }
|
|
$installDir = $cosmosDbEmulatorRegKey.InstallLocation
|
|
|
|
It "Azure Cosmos DB Emulator install location registry key exists" -TestCases @{installDir = $installDir} {
|
|
$installDir | Should -Not -BeNullOrEmpty
|
|
}
|
|
|
|
It "Azure Cosmos DB Emulator exe file exists" -TestCases @{installDir = $installDir} {
|
|
$exeFilePath = Join-Path $installDir 'CosmosDB.Emulator.exe'
|
|
$exeFilePath | Should -Exist
|
|
}
|
|
}
|
|
|
|
Describe "Bazel" {
|
|
It "<ToolName>" -TestCases @(
|
|
@{ ToolName = "bazel" }
|
|
@{ ToolName = "bazelisk" }
|
|
) {
|
|
"$ToolName --version"| Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "CodeQLBundles" {
|
|
It "Latest CodeQL Bundle" {
|
|
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
|
$LatestCodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -First 1 -Expand FullName
|
|
$LatestCodeQLPath = Join-Path $LatestCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
|
|
"$LatestCodeQLPath version --quiet" | Should -ReturnZeroExitCode
|
|
|
|
$LatestCodeQLPacksPath = Join-Path $LatestCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "qlpacks"
|
|
$LatestCodeQLPacksPath | Should -Exist
|
|
}
|
|
|
|
It "Prior CodeQL Bundle" {
|
|
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
|
$PriorCodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -Last 1 -Expand FullName
|
|
$PriorCodeQLPath = Join-Path $PriorCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
|
|
"$PriorCodeQLPath version --quiet" | Should -ReturnZeroExitCode
|
|
|
|
$PriorCodeQLPacksPath = Join-Path $PriorCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "qlpacks"
|
|
$PriorCodeQLPacksPath | Should -Exist
|
|
}
|
|
|
|
It "Latest and Prior CodeQL Bundles are unique" {
|
|
$CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
|
|
|
$LatestCodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -First 1 -Expand FullName
|
|
$LatestCodeQLPath = Join-Path $LatestCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
|
|
$LatestCodeQLVersion = & $LatestCodeQLPath version --quiet
|
|
|
|
$PriorCodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Sort-Object -Descending | Select-Object -Last 1 -Expand FullName
|
|
$PriorCodeQLPath = Join-Path $PriorCodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
|
|
$PriorCodeQLVersion = & $PriorCodeQLPath version --quiet
|
|
|
|
$LatestCodeQLVersion | Should -Not -Match $PriorCodeQLVersion
|
|
}
|
|
|
|
}
|
|
|
|
Describe "R" {
|
|
It "Rscript" {
|
|
"Rscript --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "DACFx" {
|
|
It "DACFx" {
|
|
(Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*).DisplayName -Contains "Microsoft SQL Server Data-Tier Application Framework" | Should -BeTrue
|
|
$sqlPackagePath = 'C:\Program Files\Microsoft SQL Server\160\DAC\bin\SqlPackage.exe'
|
|
"${sqlPackagePath}" | Should -Exist
|
|
}
|
|
|
|
It "SqlLocalDB" -Skip:(Test-IsWin22) {
|
|
$sqlLocalDBPath = 'C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe'
|
|
"${sqlLocalDBPath}" | Should -Exist
|
|
}
|
|
}
|
|
|
|
Describe "DotnetTLS" -Skip:(Test-IsWin22) {
|
|
It "Tls 1.2 is enabled" {
|
|
[Net.ServicePointManager]::SecurityProtocol -band "Tls12" | Should -Be Tls12
|
|
}
|
|
}
|
|
|
|
Describe "Mercurial" {
|
|
It "Mercurial" {
|
|
"hg --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "KubernetesTools" {
|
|
It "Kind" {
|
|
"kind version" | Should -ReturnZeroExitCode
|
|
}
|
|
|
|
It "kubectl" {
|
|
"kubectl version --client=true --short=true" | Should -ReturnZeroExitCode
|
|
}
|
|
|
|
It "Helm" {
|
|
"helm version --short" | Should -ReturnZeroExitCode
|
|
}
|
|
|
|
It "minikube" {
|
|
"minikube version --short" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "Mingw64" {
|
|
It "<ToolName>" -TestCases @(
|
|
@{ ToolName = "gcc" }
|
|
@{ ToolName = "g++" }
|
|
@{ ToolName = "make" }
|
|
) {
|
|
"$ToolName --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "GoogleCloudSDK" -Skip:(Test-IsWin22) {
|
|
It "<ToolName>" -TestCases @(
|
|
@{ ToolName = "bq" }
|
|
@{ ToolName = "gcloud" }
|
|
@{ ToolName = "gsutil" }
|
|
) {
|
|
"$ToolName version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "NET48" {
|
|
It "NET48" {
|
|
Get-ChildItem -Path "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\*\*\NETFX 4.8 Tools" -Directory | Should -HaveCount 1
|
|
}
|
|
}
|
|
|
|
Describe "NSIS" {
|
|
It "NSIS" {
|
|
"makensis /VERSION" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "PowerShell Core" {
|
|
It "pwsh" {
|
|
"pwsh --version" | Should -ReturnZeroExitCode
|
|
}
|
|
|
|
It "Execute 2+2 command" {
|
|
pwsh -Command "2+2" | Should -BeExactly 4
|
|
}
|
|
}
|
|
|
|
Describe "Sbt" {
|
|
It "sbt" {
|
|
"sbt --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "ServiceFabricSDK" {
|
|
It "PowerShell Module" {
|
|
Get-Module -Name ServiceFabric -ListAvailable | Should -Not -BeNullOrEmpty
|
|
}
|
|
|
|
It "ServiceFabricSDK version" {
|
|
Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Service Fabric\' -Name FabricVersion | Should -Not -BeNullOrEmpty
|
|
}
|
|
}
|
|
|
|
Describe "Stack" {
|
|
It "Stack" {
|
|
"stack --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "Vcpkg" {
|
|
It "vcpkg" {
|
|
"vcpkg version" | Should -ReturnZeroExitCode
|
|
}
|
|
|
|
It "env variable VCPKG_INSTALLATION_ROOT is set" {
|
|
$env:VCPKG_INSTALLATION_ROOT | Should -Not -BeNullOrEmpty
|
|
}
|
|
|
|
It "VCPKG_INSTALLATION_ROOT directory" {
|
|
$env:VCPKG_INSTALLATION_ROOT | Should -Exist
|
|
}
|
|
}
|
|
|
|
Describe "VCRedist" -Skip:(Test-IsWin22) {
|
|
It "vcredist_2010_x64" {
|
|
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" | Should -Exist
|
|
"C:\Windows\System32\msvcr100.dll" | Should -Exist
|
|
}
|
|
}
|
|
|
|
Describe "WebPlatformInstaller" {
|
|
It "WebPlatformInstaller" {
|
|
"WebPICMD" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "Zstd" {
|
|
It "zstd" {
|
|
"zstd -V" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "Pipx" {
|
|
It "Pipx" {
|
|
"pipx --version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "Kotlin" {
|
|
$kotlinPackages = @("kapt", "kotlin", "kotlinc", "kotlin-dce-js", "kotlinc-jvm")
|
|
|
|
It "<toolName> is available" -TestCases ($kotlinPackages | ForEach-Object { @{ toolName = $_ } }) {
|
|
"$toolName -version" | Should -ReturnZeroExitCode
|
|
}
|
|
}
|
|
|
|
Describe "SQL OLEDB Driver" {
|
|
It "SQL OLEDB Driver" {
|
|
"HKLM:\SOFTWARE\Microsoft\MSOLEDBSQL" | Should -Exist
|
|
}
|
|
}
|