[Windows] Install AZ 4.3.0 (#1137)

* Install and validate AZ 4.3.0 for Windows images

* Move azureModules to toolset

* Fix validation

* Fix modules root location

* Small fix in syntax

* Fix in syntax

* Fixes for default tool versions
This commit is contained in:
Maksim Petrov
2020-07-01 15:16:01 +03:00
committed by GitHub
parent cc6117e0db
commit 8ce91e3c37
6 changed files with 151 additions and 70 deletions

View File

@@ -3,41 +3,42 @@
## Desc: Validate Azure PowerShell modules
################################################################################
function Validate-AzureModule
{
param([String]$ModuleName, [String[]]$ModuleVersions)
$ErrorActionPreference = "Stop"
foreach($moduleVersion in $moduleVersions)
$modulesRootPath = $env:PSMODULES_ROOT_FOLDER
# Get modules content from toolset
$modules = (Get-ToolsetContent).azureModules
foreach ($module in $modules)
{
foreach ($version in $module.versions)
{
$modulePath = "${installPSModulePath}\${moduleName}_${moduleVersion}"
# Import each module in PowerShell session
$job = Start-Job -ScriptBlock {
param($modulePath, $moduleName)
$moduleName = $module.name
$modulePath = Join-Path -Path $modulesRootPath -ChildPath "$($module.name)_${version}"
Write-Host "Trying to import ${moduleName}_${version}..."
$testJob = Start-Job -ScriptBlock {
param (
$modulePath,
$moduleName
)
$env:PsModulePath = "$modulePath;$env:PsModulePath"
Import-Module -Name $moduleName
Get-Module -Name $moduleName
} -ArgumentList $modulePath, $moduleName
$isError = $job | Wait-Job | Foreach-Object ChildJobs | Where-Object {$_.Error}
if($isError)
$isError = $testJob | Wait-Job | Foreach-Object ChildJobs | Where-Object { $_.Error }
if ($isError)
{
Write-Host "Required '$moduleName' module '$moduleVersion' version is not present"
Write-Host "Required ${moduleName} module ${version} version is not present"
exit 1
}
$job | Receive-Job | Select-Object Name,Version,Path
Remove-Job $job
$testJob | Receive-Job | Select-Object Name,Version,Path
Remove-Job $testJob
}
}
# Modules path
$installPSModulePath = 'C:\Modules'
# Validate Azure modules and versions
$azurermVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "6.7.0", "6.13.1"
Validate-AzureModule -ModuleName AzureRM -ModuleVersions $azurermVersions
$azureVersions = "2.1.0", "3.8.0", "4.2.1", "5.1.1", "5.3.0"
Validate-AzureModule -ModuleName Azure -ModuleVersions $azureVersions
$azVersions = "1.0.0", "1.6.0", "2.3.2", "2.6.0", "3.1.0", "3.5.0", "3.8.0"
Validate-AzureModule -ModuleName Az -ModuleVersions $azVersions
}