mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-15 06:19:21 +00:00
Move CLI tests to the separate test file on Windows (#1363)
* move cli tests to the separate file * switch install scripts * unify CLI names
This commit is contained in:
@@ -15,4 +15,4 @@ $env:Path = $env:Path + ";$env:ProgramFiles\Amazon\SessionManagerPlugin\bin"
|
||||
# Install AWS SAM CLI
|
||||
Install-Binary -Url "https://github.com/awslabs/aws-sam-cli/releases/latest/download/AWS_SAM_CLI_64_PY3.msi" -Name "AWS_SAM_CLI_64_PY3.msi"
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "AWS"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "AWS"
|
||||
@@ -17,4 +17,4 @@ Extract-7Zip -Path $aliyunArchivePath -DestinationPath $aliyunPath
|
||||
# Add aliyun-cli to path
|
||||
Add-MachinePathItem $aliyunPath
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "AliyunCli"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Aliyun CLI"
|
||||
@@ -10,4 +10,4 @@ New-Item -ItemType "directory" -Path $AzureCliExtensionPath
|
||||
|
||||
[Environment]::SetEnvironmentVariable("AZURE_EXTENSION_DIR", $AzureCliExtensionPath, [System.EnvironmentVariableTarget]::Machine)
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "AzureCli"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Azure CLI"
|
||||
@@ -5,4 +5,4 @@
|
||||
|
||||
az extension add -n azure-devops
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "Azure DevOps CLI"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Azure DevOps CLI"
|
||||
@@ -22,4 +22,4 @@ Extract-7Zip -Path $CloudFoundryArchPath -DestinationPath $CloudFoundryCliPath
|
||||
# Add cf to path
|
||||
Add-MachinePathItem $CloudFoundryCliPath
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "CloudFoundryCli"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "CloudFoundry CLI"
|
||||
@@ -41,4 +41,4 @@ Choco-Install -PackageName hub
|
||||
Add-MachinePathItem "C:\Program Files\Git\bin"
|
||||
|
||||
Invoke-PesterTests -TestFile "Git" -TestName "Git"
|
||||
Invoke-PesterTests -TestFile "Git" -TestName "Hub"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI"
|
||||
|
||||
@@ -7,4 +7,4 @@ Choco-Install -PackageName gh
|
||||
|
||||
Add-MachinePathItem "C:\Program Files (x86)\GitHub CLI"
|
||||
|
||||
Invoke-PesterTests -TestFile "Tools" -TestName "GitHub-CLI"
|
||||
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "GitHub CLI"
|
||||
@@ -1,78 +0,0 @@
|
||||
################################################################################
|
||||
## File: Install-SQLExpress.ps1
|
||||
## Desc: Install SQL Express for Windows
|
||||
################################################################################
|
||||
Import-Module -Name ImageHelpers -Force;
|
||||
|
||||
function Download-FullSQLPackage {
|
||||
param(
|
||||
[String]$InstallerPath,
|
||||
[String]$DownloadPath,
|
||||
[String]$Arguments = ("/MEDIAPATH=$DownloadPath", "/MEDIATYPE=Core","/Action=Download", "/QUIET")
|
||||
)
|
||||
Write-Host "Downloading full package to $DownloadPath..."
|
||||
$process = Start-Process -FilePath $InstallerPath -ArgumentList $Arguments -Wait -PassThru
|
||||
$exitCode = $process.ExitCode
|
||||
if ($exitCode -eq 0)
|
||||
{
|
||||
Write-Host -Object "Full SQL Express package has been successfully downloaded to $DownloadPath : ExitCode: $exitCode"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host -Object "Full package downloading process was unsuccessful. Exit code: $exitCode."
|
||||
exit $exitCode
|
||||
}
|
||||
}
|
||||
|
||||
function Unpack-SQLInstaller {
|
||||
param(
|
||||
[String]$InstallPath,
|
||||
[String]$Arguments = ("/Q", "/IACCEPTSQLSERVERLICENSETERMS")
|
||||
)
|
||||
Write-Host "Start unpacking procedure to $InstallPath..."
|
||||
$process = Start-Process -FilePath $InstallPath -ArgumentList $Arguments -Wait -PassThru
|
||||
$exitCode = $process.ExitCode
|
||||
# Exit code -2067529716 is added since SQL Unpack procedure returns it on success.
|
||||
if ($exitCode -eq 0 -or $exitCode -eq -2067529716)
|
||||
{
|
||||
Write-Host -Object "SQL installer unpacking has been completed."
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host -Object "SQL installer unpacking was interrupted : $exitCode."
|
||||
exit $exitCode
|
||||
}
|
||||
}
|
||||
|
||||
function Start-Installer {
|
||||
param(
|
||||
[String]$InstallerPath,
|
||||
[String]$Arguments = ("/Q", "/IACCEPTSQLSERVERLICENSETERMS", "/Action=Install", "/INSTANCEID=SQL2019", "/INSTANCENAME=SQL2019", "/SECURITYMODE=SQL", "/SAPWD=P@ssword!!", "/TCPENABLED=1")
|
||||
)
|
||||
Write-Host "Installating SQL Express..."
|
||||
$process = Start-Process -FilePath $InstallerPath -ArgumentList $Arguments -Wait -PassThru
|
||||
$exitCode = $process.ExitCode
|
||||
if ($exitCode -eq 0)
|
||||
{
|
||||
Write-Host -Object "SQL Express has been successfully installed: ExitCode: $exitCode"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host -Object "Installation procedure was not correctly completed. Exit code: $exitCode."
|
||||
exit $exitCode
|
||||
}
|
||||
}
|
||||
#Main function
|
||||
$installerUrl = "https://go.microsoft.com/fwlink/?linkid=866658"
|
||||
$downloadPath = "C:\SQLInstall"
|
||||
$setupPath = Join-Path $downloadPath "SQLEXPR_x64_ENU"
|
||||
#Create directory for temporary files
|
||||
New-Item -Path $downloadPath -ItemType Directory
|
||||
Set-Location -Path $downloadPath
|
||||
$installerPath = Start-DownloadWithRetry -Url $installerUrl -DownloadPath $downloadPath -Name "SQL2019-SSEI-Expr.exe"
|
||||
Download-FullSQLPackage -InstallerPath $installerPath -DownloadPath $downloadPath
|
||||
Unpack-SQLInstaller -InstallPath "$setupPath.exe"
|
||||
$resultPath = Join-Path $setupPath "SETUP.exe"
|
||||
Start-Installer -InstallerPath $resultPath
|
||||
#Cleanup folder with installation packages.
|
||||
Remove-Item $downloadPath -Recurse -Force
|
||||
@@ -1,15 +0,0 @@
|
||||
################################################################################
|
||||
## File: Validate-AzureCli.ps1
|
||||
## Desc: Validate Azure CLI
|
||||
################################################################################
|
||||
|
||||
if (Get-Command -Name 'az')
|
||||
{
|
||||
Write-Host "Azure Cli $(az --version) on path"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Error "Azure Cli not on path"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
################################################################################
|
||||
## File: Validate-SQLExpress.ps1
|
||||
## Desc: Validate Microsoft SQL Express installation
|
||||
################################################################################
|
||||
|
||||
#Parameters for database access
|
||||
$sqlUser = "sa"
|
||||
$sqlPassword = "P@ssword!!"
|
||||
$sqlInstance = "SQL2019"
|
||||
|
||||
function Test-SqlConnection {
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[string]$ServerName,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$IntegratedSecurity,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$UserName,
|
||||
[Parameter(Mandatory)]
|
||||
[string]$Password
|
||||
)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
try {
|
||||
$connectionString = 'Server={0};Integrated Security={1};User ID={2};Password={3}' -f $ServerName,$IntegratedSecurity,$UserName,$Password
|
||||
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $connectionString
|
||||
$sqlConnection.Open()
|
||||
Write-Host -Object "Connection to SQL Express was successful."
|
||||
} catch {
|
||||
Write-Host -Object "Connection to SQL Express cannot be established."
|
||||
exit 1
|
||||
|
||||
} finally {
|
||||
## Close the connection when we're done
|
||||
$sqlConnection.Close()
|
||||
}
|
||||
}
|
||||
|
||||
$instanceName = "$env:computername\$sqlInstance"
|
||||
Test-SqlConnection -ServerName $instanceName -IntegratedSecurity "false" -UserName $sqlUser -Password $sqlPassword
|
||||
|
||||
@@ -6,16 +6,17 @@ function Get-PostgreSQLMarkdown
|
||||
$pgRoot = $pgPath.split('"')[1].replace("\bin\pg_ctl.exe", "")
|
||||
$env:Path += ";${env:PGBIN}"
|
||||
$pgVersion = (postgres --version).split()[2].Trim()
|
||||
$content = [PSCustomObject]@{
|
||||
Version = $pgVersion
|
||||
UserName = $env:PGUSER
|
||||
Password = $env:PGPASSWORD
|
||||
EnvironmentVariables = "PGBIN=$env:PGBIN; <br> PGDATA=$env:PGDATA; <br> PGROOT=$env:PGROOT"
|
||||
Path = $pgRoot
|
||||
ServiceName = $pgService.Name
|
||||
ServiceStatus = $pgService.State
|
||||
ServiceStartType = $pgService.StartMode
|
||||
} | New-MDTable
|
||||
|
||||
$content = @(
|
||||
[PSCustomObject]@{ Property = "ServiceName"; Value = $pgService.Name },
|
||||
[PSCustomObject]@{ Property = "Version"; Value = $pgVersion },
|
||||
[PSCustomObject]@{ Property = "ServiceStatus"; Value = $pgService.State },
|
||||
[PSCustomObject]@{ Property = "ServiceStartType"; Value = $pgService.StartMode },
|
||||
[PSCustomObject]@{ Property = "EnvironmentVariables"; Value = "`PGBIN=$env:PGBIN` <br> `PGDATA=$env:PGDATA` <br> `PGROOT=$env:PGROOT` " },
|
||||
[PSCustomObject]@{ Property = "Path"; Value = $pgRoot },
|
||||
[PSCustomObject]@{ Property = "UserName"; Value = $env:PGUSER },
|
||||
[PSCustomObject]@{ Property = "Password"; Value = $env:PGPASSWORD }
|
||||
) | New-MDTable
|
||||
|
||||
Build-MarkdownElement -Head $name -Content $content
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
$markdown += New-MDHeader "Tools" -Level 3
|
||||
$markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-AzCosmosDBEmulatorVersion),
|
||||
(Get-AzCopyVersion),
|
||||
(Get-BazelVersion),
|
||||
(Get-BazeliskVersion),
|
||||
(Get-CMakeVersion),
|
||||
@@ -78,6 +79,7 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-DockerComposeVersion),
|
||||
(Get-GitVersion),
|
||||
(Get-GitLFSVersion),
|
||||
(Get-GoogleCloudSDKVersion),
|
||||
(Get-InnoSetupVersion),
|
||||
(Get-JQVersion),
|
||||
(Get-KubectlVersion),
|
||||
@@ -105,7 +107,6 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
$markdown += New-MDHeader "CLI Tools" -Level 3
|
||||
$markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-AzureCLIVersion),
|
||||
(Get-AzCopyVersion),
|
||||
(Get-AzureDevopsExtVersion),
|
||||
(Get-AWSCLIVersion),
|
||||
(Get-AWSSAMVersion),
|
||||
@@ -113,7 +114,7 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-AlibabaCLIVersion),
|
||||
(Get-CloudFoundryVersion),
|
||||
(Get-HubVersion),
|
||||
(Get-GoogleCloudSDKVersion)
|
||||
(Get-GHVersion)
|
||||
)
|
||||
|
||||
$markdown += New-MDHeader "Rust Tools" -Level 3
|
||||
|
||||
@@ -220,4 +220,8 @@ function Get-GoogleCloudSDKVersion {
|
||||
|
||||
function Get-NewmanVersion {
|
||||
return "Newman $(newman --version)"
|
||||
}
|
||||
|
||||
function Get-GHVersion {
|
||||
return "GitHub CLI $(gh --version)"
|
||||
}
|
||||
56
images/win/scripts/Tests/CLI.Tools.Tests.ps1
Normal file
56
images/win/scripts/Tests/CLI.Tools.Tests.ps1
Normal file
@@ -0,0 +1,56 @@
|
||||
|
||||
Describe "Azure CLI" {
|
||||
It "Azure CLI" {
|
||||
"az --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Azure DevOps CLI" {
|
||||
It "az devops" {
|
||||
"az devops -h" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Aliyun CLI" {
|
||||
It "Aliyun CLI" {
|
||||
"aliyun version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Describe "AWS" {
|
||||
It "AWS CLI" {
|
||||
"aws --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Session Manager Plugin for the AWS CLI" {
|
||||
session-manager-plugin | Out-String | Should -Match "plugin was installed successfully"
|
||||
}
|
||||
|
||||
It "AWS SAM CLI" {
|
||||
"sam --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Describe "GitHub CLI" {
|
||||
It "gh" {
|
||||
"gh --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "CloudFoundry CLI" {
|
||||
It "cf is located in C:\cf-cli" {
|
||||
"C:\cf-cli\cf.exe" | Should -Exist
|
||||
}
|
||||
|
||||
It "cf" {
|
||||
"cf --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Hub CLI" {
|
||||
It "hub is installed" {
|
||||
"hub --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
@@ -24,12 +24,6 @@ Describe "Git" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Hub" {
|
||||
It "hub is installed" {
|
||||
"hub --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "GitVersion" {
|
||||
It "gitversion is installed" {
|
||||
"gitversion /version" | Should -ReturnZeroExitCode
|
||||
|
||||
@@ -6,26 +6,6 @@ Describe "7-Zip" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "AliyunCli" {
|
||||
It "AliyunCli" {
|
||||
"aliyun version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "AWS" {
|
||||
It "AWS CLI" {
|
||||
"aws --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Session Manager Plugin for the AWS CLI" {
|
||||
session-manager-plugin | Out-String | Should -Match "plugin was installed successfully"
|
||||
}
|
||||
|
||||
It "AWS SAM CLI" {
|
||||
"sam --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "AzCopy" {
|
||||
It "AzCopy" {
|
||||
"azcopy --version" | Should -ReturnZeroExitCode
|
||||
@@ -46,18 +26,6 @@ Describe "Azure Cosmos DB Emulator" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "AzureCli" {
|
||||
It "AzureCli" {
|
||||
"az --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Azure DevOps CLI" {
|
||||
It "az devops" {
|
||||
"az devops -h" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Bazel" {
|
||||
It "<ToolName>" -TestCases @(
|
||||
@{ ToolName = "bazel" }
|
||||
@@ -162,22 +130,6 @@ Describe "InnoSetup" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "GitHub-CLI" {
|
||||
It "gh" {
|
||||
"gh --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "CloudFoundryCli" {
|
||||
It "cf is located in C:\cf-cli" {
|
||||
"C:\cf-cli\cf.exe" | Should -Exist
|
||||
}
|
||||
|
||||
It "cf" {
|
||||
"cf --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "GoogleCouldSDK" {
|
||||
It "<ToolName>" -TestCases @(
|
||||
@{ ToolName = "bq" }
|
||||
|
||||
Reference in New Issue
Block a user