diff --git a/.azure-pipelines/release-test.yml b/.azure-pipelines/release-test.yml index e9c982aadbbf..45f722c1a3be 100644 --- a/.azure-pipelines/release-test.yml +++ b/.azure-pipelines/release-test.yml @@ -1,178 +1,185 @@ pr: none trigger: none -strategy: - matrix: - Windows PS 5.1.14: - Image_Name: 'vs2017-win2016' - PSVersion: '5.1.14' - - Windows PS 6.2.4: - Image_Name: 'vs2017-win2016' - PSVersion: '6.2.4' - - Windows PS 7.0.3: - Image_Name: 'vs2017-win2016' - PSVersion: '7.0.3' - - Linux PS 6.2.4: - Image_Name: 'ubuntu-18.04' - PSVersion: '6.2.4' +jobs: +- job: SmokeTest + timeoutInMinutes: 180 + strategy: + matrix: + Windows PS 5.1.14: + Image_Name: 'vs2017-win2016' + PSVersion: '5.1.14' + Windows PS 6.2.4: + Image_Name: 'vs2017-win2016' + PSVersion: '6.2.4' + Windows PS 7.0.3: + Image_Name: 'vs2017-win2016' + PSVersion: '7.0.3' + Linux PS 6.2.4: + Image_Name: 'ubuntu-18.04' + PSVersion: '6.2.4' + Linux PS 7.0.3: + Image_Name: 'ubuntu-18.04' + PSVersion: '7.0.3' + MacOS PS 6.2.4: + Image_Name: 'macOS-10.15' + PSVersion: '6.2.4' + MacOS PS 7.0.3: + Image_Name: 'macOS-10.15' + PSVersion: '7.0.3' + pool: + vmImage: $(Image_Name) + + steps: + - task: PowerShell@2 + displayName: Prepare Powershell $(PSVersion) + inputs: + filePath: 'tools/Test/SmokeTest/PrepareRequiredPowershell.ps1' + arguments: '-RequiredPsVersion $(PSVersion)' + + - task: DownloadPipelineArtifact@2 + condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo'), eq(variables['PipelineId'], '')) + displayName: Download Latest Artifacts from Build Pipeline + inputs: + buildType: specific + project: $(ProjectToDownloadArtifacts) + definition: $(BuildPipelineName) + buildVersionToDownload: 'latest' + artifactName: $(ArtifactName) + targetPath: $(Pipeline.Workspace) + + - task: DownloadPipelineArtifact@2 + condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo'), ne(variables['PipelineId'], '')) + displayName: Download Specified Artifacts from Build Pipeline + inputs: + buildType: 'specific' + project: $(ProjectToDownloadArtifacts) + definition: $(BuildPipelineName) + buildVersionToDownload: 'specific' + pipelineId: $(PipelineId) + artifactName: '$(ArtifactName)' + targetPath: '$(Pipeline.Workspace)' + + - task: PowerShell@2 + condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) + displayName: Copy Artifacts to LocalRepo + inputs: + targetType: 'inline' + script: | + New-Item -Path "$(Pipeline.Workspace)" -Name "LocalRepo" -ItemType "directory" + Copy-Item -Path "$(Pipeline.Workspace)\\*.nupkg" -Destination "$(Pipeline.Workspace)\\LocalRepo\\" + Write-Host "List artifacts..." + Get-ChildItem "$(Pipeline.Workspace)\\LocalRepo\\" + + - task: NuGetCommand@2 + condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) + displayName: 'Download Previous Release .nupkg Files' + inputs: + command: custom + arguments: 'install Az -directdownload -packagesavemode nupkg -source https://www.powershellgallery.com/api/v2 -OutputDirectory packages' + + - task: PowerShell@2 + condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) + displayName: 'Copy Previous Release .nupkg files to LocalRepo' + inputs: + targetType: 'inline' + script: | + Get-ChildItem $(System.DefaultWorkingDirectory)/packages -Recurse -Include *.nupkg | Copy-Item -Destination "$(Pipeline.Workspace)\\LocalRepo\\" -Force + Write-Host "List localRepo..." + Get-ChildItem "$(Pipeline.Workspace)\\LocalRepo\\" + + - task: PowerShell@2 + displayName: Install Az Modules from $(GalleryName) + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAzModules.ps1 -Gallery $(GalleryName) -LocalRepoLocation $(LocalRepoLocation)"' - Linux PS 7.0.3: - Image_Name: 'ubuntu-18.04' - PSVersion: '7.0.3' - - MacOS PS 6.2.4: - Image_Name: 'macOS-10.15' - PSVersion: '6.2.4' - - MacOS PS 7.0.3: - Image_Name: 'macOS-10.15' - PSVersion: '7.0.3' - -pool: - vmImage: $(Image_Name) - -steps: -- task: PowerShell@2 - displayName: Prepare Powershell $(PSVersion) - inputs: - filePath: 'tools/Test/SmokeTest/PrepareRequiredPowershell.ps1' - arguments: '-RequiredPsVersion $(PSVersion)' - -- task: DownloadPipelineArtifact@2 - condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) - displayName: Download Artifacts from Build Pipeline - inputs: - buildType: specific - project: $(ProjectToDownloadArtifacts) - definition: $(BuildPipelineName) - buildVersionToDownload: latestFromBranch - branchName: $(BranchName) - artifactName: $(ArtifactName) - targetPath: $(Pipeline.Workspace) - -- task: PowerShell@2 - condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) - displayName: Copy Artifacts to LocalRepo - inputs: - targetType: 'inline' - script: | - New-Item -Path "$(Pipeline.Workspace)" -Name "LocalRepo" -ItemType "directory" - Copy-Item -Path "$(Pipeline.Workspace)\\*.nupkg" -Destination "$(Pipeline.Workspace)\\LocalRepo\\" - Write-Host "List artifacts..." - Get-ChildItem "$(Pipeline.Workspace)\\LocalRepo\\" - -- task: NuGetCommand@2 - condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) - displayName: 'Download Previous Release .nupkg Files' - inputs: - command: custom - arguments: 'install Az -directdownload -packagesavemode nupkg -source https://www.powershellgallery.com/api/v2 -OutputDirectory packages' - -- task: PowerShell@2 - condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) - displayName: 'Copy Previous Release .nupkg files to LocalRepo' - inputs: - targetType: 'inline' - script: | - Get-ChildItem $(System.DefaultWorkingDirectory)/packages -Recurse -Include *.nupkg | Copy-Item -Destination "$(Pipeline.Workspace)\\LocalRepo\\" -Force - Write-Host "List localRepo..." - Get-ChildItem "$(Pipeline.Workspace)\\LocalRepo\\" - -- task: PowerShell@2 - displayName: Install Az Modules from $(GalleryName) - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAzModules.ps1 -Gallery $(GalleryName) -LocalRepoLocation $(LocalRepoLocation)"' - -- task: PowerShell@2 - displayName: Connect AzAccount - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/ConnectAzAccount.ps1 $(Password) $(ServicePrincipal) $(TenantId)"' - -- task: PowerShell@2 - displayName: Run Smoke Test - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1"' - -- task: PowerShell@2 - displayName: 'Run Smoke Test Reversely' - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse"' - -- task: PowerShell@2 - displayName: Clean Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' - -- task: PowerShell@2 - displayName: Update Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName)"' - -- task: PowerShell@2 - displayName: Run Smoke Test - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1"' - -- task: PowerShell@2 - displayName: 'Run Smoke Test Reversely' - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse"' - -- task: PowerShell@2 - displayName: Clean Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' + - task: PowerShell@2 + displayName: Connect AzAccount + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/ConnectAzAccount.ps1 $(Password) $(ServicePrincipal) $(TenantId) $(SubscriptionId) "' + + - task: PowerShell@2 + displayName: Run Smoke Test + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId)"' + + - task: PowerShell@2 + displayName: 'Run Smoke Test Reversely' + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId) -Reverse"' + + - task: PowerShell@2 + displayName: Clean Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' + + - task: PowerShell@2 + displayName: Update Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' + + - task: PowerShell@2 + displayName: Run Smoke Test + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId) "' + + - task: PowerShell@2 + displayName: 'Run Smoke Test Reversely' + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId) -Reverse "' + + - task: PowerShell@2 + displayName: Clean Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' -- task: PowerShell@2 - displayName: Install an individual module - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName)"' - -- task: PowerShell@2 - displayName: Clean Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' - -- task: PowerShell@2 - displayName: Update an individual module - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName)"' - -- task: PowerShell@2 - displayName: Clean Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' - -- task: PowerShell@2 - displayName: Install Az on top of an individual module - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 -Gallery $(GalleryName)"' + - task: PowerShell@2 + displayName: Install an individual module + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName) "' + + - task: PowerShell@2 + displayName: Clean Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' + + - task: PowerShell@2 + displayName: Update an individual module + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' + + - task: PowerShell@2 + displayName: Clean Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' + + - task: PowerShell@2 + displayName: Install Az on top of an individual module + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' -- task: PowerShell@2 - displayName: Clean Az Modules - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' - -- task: PowerShell@2 - displayName: Install an individual module on top of Az - inputs: - filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 -Gallery $(GalleryName)"' + - task: PowerShell@2 + displayName: Clean Az Modules + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"' + + - task: PowerShell@2 + displayName: Install an individual module on top of Az + inputs: + filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' \ No newline at end of file diff --git a/tools/Test/SmokeTest/ConnectAzAccount.ps1 b/tools/Test/SmokeTest/ConnectAzAccount.ps1 index 7713e1ebb864..701590d9ba1f 100644 --- a/tools/Test/SmokeTest/ConnectAzAccount.ps1 +++ b/tools/Test/SmokeTest/ConnectAzAccount.ps1 @@ -10,12 +10,14 @@ param( [string] [Parameter(Mandatory = $true, Position = 2)] - $tenantId + $tenantId, + + [string] + [Parameter(Mandatory = $true, Position = 3)] + $subscriptionId ) Write-Host "Connecting Az.Account..." $secret = ConvertTo-SecureString -String $pwd -AsPlainText -Force $credential = New-Object -TypeName System.Management.Automation.PSCredential($servicePrincipal, $secret) -Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant $tenantId -Set-AzContext -Subscription "Azure SDK Powershell Test" -Enable-AzureRmAlias \ No newline at end of file +Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant $tenantId -Subscription $subscriptionId \ No newline at end of file diff --git a/tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 b/tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 index 3cce65db0b7d..493b3c8ed8a9 100644 --- a/tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 +++ b/tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 @@ -2,7 +2,10 @@ param( [string] [Parameter(Mandatory = $true, Position = 0)] - $gallery + $gallery, + [bool] + [Parameter(Mandatory = $false, Position =1)] + $allowEquality = $false ) # Get previous version of Az @@ -27,13 +30,14 @@ Get-AzVM # Check version $azComputeVersion = (Get-Module Az.Compute).Version +Write-Host "Az.Compute version before updated", $azComputePreviousVersion Write-Host "Current version of Az.Compute,", $azComputeVersion -if ([System.Version]$azComputeVersion -lt [System.Version]$azComputePreviousVersion) { - throw "Install Az.Compute on top of Az failed" -}elseif([System.Version]$azComputeVersion -eq [System.Version]$azComputePreviousVersion){ +if ([System.Version]$azComputeVersion -gt [System.Version]$azComputePreviousVersion) { + Write-Host "Install Az.Compute on top of Az successfully" +}elseif(([System.Version]$azComputeVersion -eq [System.Version]$azComputePreviousVersion) -and $allowEquality){ Write-Warning "Az.Compute did not update" }else{ - Write-Host "Install Az.Compute on top of Az successfully" + throw "Install Az.Compute on top of Az failed" } diff --git a/tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 b/tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 index 3e075c9f8221..17882354da1e 100644 --- a/tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 +++ b/tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 @@ -2,7 +2,10 @@ param( [string] [Parameter(Mandatory = $true, Position = 0)] - $gallery + $gallery, + [bool] + [Parameter(Mandatory = $false, Position =1)] + $allowEquality = $false ) # Get previous version of Az.Compute . "$PSScriptRoot/Common.ps1" @@ -21,15 +24,16 @@ Get-AzVM # Check version $azComputeVersion = (Get-Module Az.Compute).Version +Write-Host "Az.Compute version before updated", $previousVersion Write-Host "Current version of Az.Compute", $azComputeVersion Write-Host "Checking Az details..." Get-Module -Name Az.* -ListAvailable -if ([System.Version]$azComputeVersion -lt [System.Version]$previousVersion) { - throw "Install Az on top of Az.Compute failed" -}elseif([System.Version]$azComputeVersion -eq [System.Version]$previousVersion){ +if ([System.Version]$azComputeVersion -gt [System.Version]$previousVersion) { + Write-Host "Install Az on top of Az.Compute successfully" +}elseif(([System.Version]$azComputeVersion -eq [System.Version]$previousVersion) -and $allowEquality){ Write-Warning "Az.Compute did not update" }else{ - Write-Host "Install Az on top of Az.Compute successfully" + throw "Install Az on top of Az.Compute failed" } diff --git a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 index d282d1ad4c02..622cbd89a71e 100644 --- a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 +++ b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 @@ -15,11 +15,6 @@ if (Get-Module -ListAVailable 'Az.Accounts') Enable-AzureRmAlias } -if (!(Get-AzureRmContext -ErrorAction 'Ignore')) -{ - Connect-AzureRmAccount -Subscription "Azure SDK PowerShell Test" -} - $testInfo = @{ TotalCount = 0; PassedCount = 0; diff --git a/tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 b/tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 index c34f7f973533..f7234562d83b 100644 --- a/tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 +++ b/tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 @@ -2,7 +2,10 @@ param( [string] [Parameter(Mandatory = $true, Position = 0)] - $gallery + $gallery, + [bool] + [Parameter(Mandatory = $false, Position =1)] + $allowEquality = $false ) # Get previous version of Az.Compute @@ -23,12 +26,13 @@ Get-AzVM # Check Az.Compute version $azComputeVersion = (Get-Module Az.Compute).Version | Sort-Object -Descending +Write-Host "Az.Compute version before updated", $previousVersion Write-Host "Current version of Az.Compute", $azComputeVersion -if ([System.Version]$azComputeVersion -lt [System.Version]$previousVersion) { - throw "Update Az.Compute failed" -}elseif([System.Version]$azComputeVersion -eq [System.Version]$previousVersion){ +if ([System.Version]$azComputeVersion -gt [System.Version]$previousVersion) { + Write-Host "Update Az.Compute successfully" +}elseif(([System.Version]$azComputeVersion -eq [System.Version]$previousVersion) -and $allowEquality){ Write-Warning "Az.Compute did not update" }else{ - Write-Host "Update Az.Compute successfully" + throw "Update Az.Compute failed" } diff --git a/tools/Test/SmokeTest/UpdateAzModules.ps1 b/tools/Test/SmokeTest/UpdateAzModules.ps1 index 6c47b9374710..96656b4acc9a 100644 --- a/tools/Test/SmokeTest/UpdateAzModules.ps1 +++ b/tools/Test/SmokeTest/UpdateAzModules.ps1 @@ -2,7 +2,10 @@ param( [string] [Parameter(Mandatory = $true, Position = 0)] - $gallery + $gallery, + [bool] + [Parameter(Mandatory = $false, Position =1)] + $allowEquality = $false ) # Get previous version of Az @@ -24,13 +27,13 @@ Get-Module -Name Az.* -ListAvailable # Check Az version Import-Module -MinimumVersion '2.6.0' -Name 'Az' -Force -Scope 'Global' $azVersion = (get-module Az).Version +Write-Host "Az version before updated", $previousVersion Write-Host "Current version of Az", $azVersion -if ([System.Version]$azVersion -lt [System.Version]$previousVersion) { - throw "Update Az failed" -} -elseif([System.Version]$azVersion -eq [System.Version]$previousVersion){ +if ([System.Version]$azVersion -gt [System.Version]$previousVersion) { + Write-Host "Update Az successfully" +}elseif(([System.Version]$azVersion -eq [System.Version]$previousVersion) -and $allowEquality){ Write-Warning "Az did not update" }else{ - Write-Host "Update Az successfully" + throw "Update Az failed" } \ No newline at end of file