From e199fb7829d3a45dc0342106400fbf895216379d Mon Sep 17 00:00:00 2001 From: Beisi Zhou Date: Tue, 20 Oct 2020 12:56:16 +0800 Subject: [PATCH 1/5] require specified build to download --- .azure-pipelines/release-test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.azure-pipelines/release-test.yml b/.azure-pipelines/release-test.yml index e9c982aadbbf..9256a2cb479e 100644 --- a/.azure-pipelines/release-test.yml +++ b/.azure-pipelines/release-test.yml @@ -45,13 +45,13 @@ steps: condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) displayName: Download Artifacts from Build Pipeline inputs: - buildType: specific + buildType: 'specific' project: $(ProjectToDownloadArtifacts) definition: $(BuildPipelineName) - buildVersionToDownload: latestFromBranch - branchName: $(BranchName) - artifactName: $(ArtifactName) - targetPath: $(Pipeline.Workspace) + buildVersionToDownload: 'specific' + pipelineId: $(PipelineId) + artifactName: '$(ArtifactName)' + targetPath: '$(Pipeline.Workspace)' - task: PowerShell@2 condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) From 1713b02db8cb2de1dc8052f0f1852489f908e403 Mon Sep 17 00:00:00 2001 From: Beisi Zhou Date: Tue, 20 Oct 2020 14:50:42 +0800 Subject: [PATCH 2/5] set timeout in 180 minutes --- .azure-pipelines/release-test.yml | 338 +++++++++++++++--------------- 1 file changed, 167 insertions(+), 171 deletions(-) diff --git a/.azure-pipelines/release-test.yml b/.azure-pipelines/release-test.yml index 9256a2cb479e..8e23582e71f6 100644 --- a/.azure-pipelines/release-test.yml +++ b/.azure-pipelines/release-test.yml @@ -1,178 +1,174 @@ 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)' - 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: '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)"' -- task: DownloadPipelineArtifact@2 - condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo')) - displayName: Download 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)"' - -- 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)"' + + - 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: 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)"' + + - 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: 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)"' \ No newline at end of file From a3eeacceaad8563541a77ed11785bcc256697652 Mon Sep 17 00:00:00 2001 From: Beisi Zhou Date: Wed, 28 Oct 2020 12:07:04 +0800 Subject: [PATCH 3/5] get specified artifacts if pipeline id specified, or get latest one --- .azure-pipelines/release-test.yml | 27 +++++++++++++------ .../InstallAnIndividualModuleOnTopOfAz.ps1 | 14 ++++++---- .../InstallAzOnTopOfAnIndividualModule.ps1 | 14 ++++++---- .../SmokeTest/UpdateAnIndividualModule.ps1 | 14 ++++++---- tools/Test/SmokeTest/UpdateAzModules.ps1 | 15 ++++++----- 5 files changed, 55 insertions(+), 29 deletions(-) diff --git a/.azure-pipelines/release-test.yml b/.azure-pipelines/release-test.yml index 8e23582e71f6..ba0441424626 100644 --- a/.azure-pipelines/release-test.yml +++ b/.azure-pipelines/release-test.yml @@ -36,10 +36,21 @@ jobs: 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 + 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) @@ -111,7 +122,7 @@ jobs: displayName: Update Az Modules inputs: filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName)"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' - task: PowerShell@2 displayName: Run Smoke Test @@ -135,7 +146,7 @@ jobs: displayName: Install an individual module inputs: filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName)"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName) "' - task: PowerShell@2 displayName: Clean Az Modules @@ -147,7 +158,7 @@ jobs: displayName: Update an individual module inputs: filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName)"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' - task: PowerShell@2 displayName: Clean Az Modules @@ -159,7 +170,7 @@ jobs: 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)"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "' - task: PowerShell@2 displayName: Clean Az Modules @@ -171,4 +182,4 @@ jobs: 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)"' \ No newline at end of file + 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/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/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 From cf80e2e87ee42ba2e2c3e4c13151ef5230160c31 Mon Sep 17 00:00:00 2001 From: Beisi Zhou Date: Tue, 3 Nov 2020 12:18:30 +0800 Subject: [PATCH 4/5] retire 'Azure SDK Powershell Test' subscription --- .azure-pipelines/release-test.yml | 10 +++++----- tools/Test/SmokeTest/ConnectAzAccount.ps1 | 10 ++++++---- tools/Test/SmokeTest/RmCoreSmokeTests.ps1 | 7 ++++++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/.azure-pipelines/release-test.yml b/.azure-pipelines/release-test.yml index ba0441424626..45f722c1a3be 100644 --- a/.azure-pipelines/release-test.yml +++ b/.azure-pipelines/release-test.yml @@ -98,19 +98,19 @@ jobs: displayName: Connect AzAccount inputs: filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/ConnectAzAccount.ps1 $(Password) $(ServicePrincipal) $(TenantId)"' + 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"' + 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 -Reverse"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId) -Reverse"' - task: PowerShell@2 displayName: Clean Az Modules @@ -128,13 +128,13 @@ jobs: displayName: Run Smoke Test inputs: filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1' - arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.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 -Reverse"' + arguments: '-RequiredPsVersion $(PSVersion) -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 $(SubscriptionId) -Reverse "' - task: PowerShell@2 displayName: Clean Az Modules 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/RmCoreSmokeTests.ps1 b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 index d282d1ad4c02..b7840200f64b 100644 --- a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 +++ b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 @@ -5,6 +5,11 @@ # $debugState = $false [cmdletbinding()] param( + [string] + [Parameter(Mandatory = $false, Position = 0)] + [PSDefaultValue(Help = "9e223dbe-3399-4e19-88eb-0975f02ac87f")] + $subscriptionId = "9e223dbe-3399-4e19-88eb-0975f02ac87f", + [Parameter()] [switch] $Reverse @@ -17,7 +22,7 @@ if (Get-Module -ListAVailable 'Az.Accounts') if (!(Get-AzureRmContext -ErrorAction 'Ignore')) { - Connect-AzureRmAccount -Subscription "Azure SDK PowerShell Test" + Connect-AzureRmAccount -Subscription $subscriptionId } $testInfo = @{ From 6dd1d905d065163821808cd8dc768c13cbd597c7 Mon Sep 17 00:00:00 2001 From: Beisi Zhou Date: Wed, 4 Nov 2020 17:23:32 +0800 Subject: [PATCH 5/5] fix some issues --- tools/Test/SmokeTest/RmCoreSmokeTests.ps1 | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 index b7840200f64b..622cbd89a71e 100644 --- a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 +++ b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 @@ -5,11 +5,6 @@ # $debugState = $false [cmdletbinding()] param( - [string] - [Parameter(Mandatory = $false, Position = 0)] - [PSDefaultValue(Help = "9e223dbe-3399-4e19-88eb-0975f02ac87f")] - $subscriptionId = "9e223dbe-3399-4e19-88eb-0975f02ac87f", - [Parameter()] [switch] $Reverse @@ -20,11 +15,6 @@ if (Get-Module -ListAVailable 'Az.Accounts') Enable-AzureRmAlias } -if (!(Get-AzureRmContext -ErrorAction 'Ignore')) -{ - Connect-AzureRmAccount -Subscription $subscriptionId -} - $testInfo = @{ TotalCount = 0; PassedCount = 0;