Skip to content

Commit 2d4550c

Browse files
authored
[Smoke test pipeline] Add Preview version of PowerShell and little changes in smoke test (#20476)
* Update smoke test * Add spaces * Set URL as parameters, add comments and add netcoreversion_7. * Edit URL as parameters. * Edit display name * Add variable in smoke-test-steps * Add variable in smoke-test-steps change to empty * Add parameter in smoke-test-steps * Add double quote * Define PowerShell path value in smoke-test-steps
1 parent a6439dc commit 2d4550c

File tree

5 files changed

+216
-40
lines changed

5 files changed

+216
-40
lines changed

.azure-pipelines/release-test.yml

Lines changed: 82 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,35 @@ parameters:
66
- name: ps7
77
displayName: PowerShell 7.0.x Version
88
type: string
9-
default: 7.0.13
9+
default: 7.0.*
1010
- name: ps7_1
1111
displayName: PowerShell 7.1.x Version
1212
type: string
13-
default: 7.1.7
13+
default: 7.1.*
1414
- name: ps7_2
1515
displayName: PowerShell 7.2.x Version
1616
type: string
17-
default: 7.2.7
17+
default: 7.2.*
18+
- name: ps7_3
19+
displayName: PowerShell 7.3.x Version
20+
type: string
21+
default: 7.3.*
1822
- name: latest_ps
1923
displayName: PowerShell Latest Version
2024
type: string
21-
default: 7.2.7
25+
default: latest
26+
- name: preview_ps
27+
displayName: PowerShell Preview Version
28+
type: string
29+
default: preview
2230
- name: netCoreVersion
2331
displayName: .NET Version
2432
type: string
2533
default: 6.0.x
34+
- name: netCoreVersion_7
35+
displayName: .NET Version 7
36+
type: string
37+
default: 7.0.x
2638

2739
variables:
2840
winAgentPoolName: pool-windows-2019
@@ -68,13 +80,29 @@ jobs:
6880
psVersion: ${{ parameters.ps7_2 }}
6981
netCoreVersion: ${{ parameters.netCoreVersion }}
7082

83+
- template: util/smoke-test-steps.yml
84+
parameters:
85+
name: 'Win_PS7_3_X_SmokeTest'
86+
agentPoolName: ${{ variables.winAgentPoolName }}
87+
agentPoolVMImage: ${{ variables.winAgentPoolVMImage }}
88+
psVersion: ${{ parameters.ps7_3 }}
89+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
90+
7191
- template: util/smoke-test-steps.yml
7292
parameters:
7393
name: 'Win_Latest_PS_SmokeTest'
7494
agentPoolName: ${{ variables.winAgentPoolName }}
7595
agentPoolVMImage: ${{ variables.winAgentPoolVMImage }}
7696
psVersion: ${{ parameters.latest_ps }}
77-
netCoreVersion: ${{ parameters.netCoreVersion }}
97+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
98+
99+
- template: util/smoke-test-steps.yml
100+
parameters:
101+
name: 'Win_Preview_PS_SmokeTest'
102+
agentPoolName: ${{ variables.winAgentPoolName }}
103+
agentPoolVMImage: ${{ variables.winAgentPoolVMImage }}
104+
psVersion: ${{ parameters.preview_ps }}
105+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
78106

79107
- template: util/smoke-test-steps.yml
80108
parameters:
@@ -100,12 +128,44 @@ jobs:
100128
psVersion: ${{ parameters.ps7_2 }}
101129
netCoreVersion: ${{ parameters.netCoreVersion }}
102130

131+
- template: util/smoke-test-steps.yml
132+
parameters:
133+
name: 'Linux_PS7_3_X_SmokeTest'
134+
agentPoolName: ${{ variables.linuxAgentPoolName }}
135+
agentPoolVMImage: ${{ variables.linuxAgentPoolVMImage }}
136+
psVersion: ${{ parameters.ps7_3 }}
137+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
138+
103139
- template: util/smoke-test-steps.yml
104140
parameters:
105141
name: 'Linux_Latest_PS_SmokeTest'
106142
agentPoolName: ${{ variables.linuxAgentPoolName }}
107143
agentPoolVMImage: ${{ variables.linuxAgentPoolVMImage }}
108144
psVersion: ${{ parameters.latest_ps }}
145+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
146+
147+
- template: util/smoke-test-steps.yml
148+
parameters:
149+
name: 'Linux_Preview_PS_SmokeTest'
150+
agentPoolName: ${{ variables.linuxAgentPoolName }}
151+
agentPoolVMImage: ${{ variables.linuxAgentPoolVMImage }}
152+
psVersion: ${{ parameters.preview_ps }}
153+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
154+
155+
- template: util/smoke-test-steps.yml
156+
parameters:
157+
name: 'MacOS_PS7_0_X_SmokeTest'
158+
agentPoolName: ${{ variables.macOsAgentPoolName }}
159+
agentPoolVMImage: ${{ variables.macOsAgentPoolVMImage }}
160+
psVersion: ${{ parameters.ps7 }}
161+
netCoreVersion: ${{ parameters.netCoreVersion }}
162+
163+
- template: util/smoke-test-steps.yml
164+
parameters:
165+
name: 'MacOS_PS7_1_X_SmokeTest'
166+
agentPoolName: ${{ variables.macOsAgentPoolName }}
167+
agentPoolVMImage: ${{ variables.macOsAgentPoolVMImage }}
168+
psVersion: ${{ parameters.ps7_1 }}
109169
netCoreVersion: ${{ parameters.netCoreVersion }}
110170

111171
- template: util/smoke-test-steps.yml
@@ -116,10 +176,26 @@ jobs:
116176
psVersion: ${{ parameters.ps7_2 }}
117177
netCoreVersion: ${{ parameters.netCoreVersion }}
118178

179+
- template: util/smoke-test-steps.yml
180+
parameters:
181+
name: 'MacOS_PS7_3_X_SmokeTest'
182+
agentPoolName: ${{ variables.macOsAgentPoolName }}
183+
agentPoolVMImage: ${{ variables.macOsAgentPoolVMImage }}
184+
psVersion: ${{ parameters.ps7_3 }}
185+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
186+
119187
- template: util/smoke-test-steps.yml
120188
parameters:
121189
name: 'MacOS_Latest_PS_SmokeTest'
122190
agentPoolName: ${{ variables.macOsAgentPoolName }}
123191
agentPoolVMImage: ${{ variables.macOsAgentPoolVMImage }}
124192
psVersion: ${{ parameters.latest_ps }}
125-
netCoreVersion: ${{ parameters.netCoreVersion }}
193+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}
194+
195+
- template: util/smoke-test-steps.yml
196+
parameters:
197+
name: 'MacOS_Preview_PS_SmokeTest'
198+
agentPoolName: ${{ variables.macOsAgentPoolName }}
199+
agentPoolVMImage: ${{ variables.macOsAgentPoolVMImage }}
200+
psVersion: ${{ parameters.preview_ps }}
201+
netCoreVersion: ${{ parameters.netCoreVersion_7 }}

.azure-pipelines/util/smoke-test-steps.yml

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ parameters:
44
agentPoolName: ''
55
agentPoolVMImage: ''
66
netCoreVersion: ''
7+
PowerShellPath: '$(Build.SourcesDirectory)/ps_preview'
78

89
jobs:
910
- job: ${{ parameters.name }}
@@ -20,11 +21,28 @@ jobs:
2021
packageType: sdk
2122
version: ${{ parameters.netCoreVersion }}
2223

24+
- task: PowerShell@2
25+
condition: and(succeeded(), eq('${{ parameters.psVersion }}', 'preview'))
26+
displayName: DownLoad Package for ${{ parameters.psVersion }}
27+
inputs:
28+
filePath: 'tools/Test/SmokeTest/DownLoadPowershellPreviewPackage.ps1'
29+
arguments: '-DowanloadDir $(Build.SourcesDirectory) -AgentOS "$(Agent.OS)" -AgentAarchitecture "$(Agent.OSArchitecture)"'
30+
31+
- task: ExtractFiles@1
32+
condition: and(succeeded(), eq('${{ parameters.psVersion }}', 'preview'))
33+
displayName: 'Extract PowerShell Preview Package '
34+
inputs:
35+
archiveFilePatterns: |
36+
*.zip
37+
*.tar.gz
38+
destinationFolder: ${{ parameters.PowerShellPath }}
39+
overwriteExistingFiles: true
40+
2341
- task: PowerShell@2
2442
displayName: Prepare Powershell ${{ parameters.psVersion }}
2543
inputs:
2644
filePath: 'tools/Test/SmokeTest/PrepareRequiredPowershell.ps1'
27-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }}'
45+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
2846

2947
- task: DownloadPipelineArtifact@2
3048
condition: and(succeeded(), eq(variables['GalleryName'], 'LocalRepo'), eq(variables['PipelineId'], ''))
@@ -88,102 +106,102 @@ jobs:
88106
displayName: Install Az Modules from $(GalleryName)
89107
inputs:
90108
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
91-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAzModules.ps1 -Gallery $(GalleryName) -LocalRepoLocation $(LocalRepoLocation)"'
109+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAzModules.ps1 -Gallery $(GalleryName) -LocalRepoLocation $(LocalRepoLocation)" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
92110

93111
- task: PowerShell@2
94112
displayName: Connect AzAccount
95113
inputs:
96114
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
97-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/ConnectAzAccount.ps1 $(Password) $(ServicePrincipal) $(TenantId) $(SubscriptionId) "'
115+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/ConnectAzAccount.ps1 $(Password) $(ServicePrincipal) $(TenantId) $(SubscriptionId) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
98116

99117
- task: PowerShell@2
100118
displayName: Run Smoke Test
101119
inputs:
102120
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
103-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 "'
121+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
104122
failOnStderr: true
105123

106124

107125
- task: PowerShell@2
108126
displayName: 'Run Smoke Test Reversely'
109127
inputs:
110128
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
111-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse"'
129+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
112130
failOnStderr: true
113131

114132

115133
- task: PowerShell@2
116134
displayName: Clean Az Modules
117135
inputs:
118136
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
119-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"'
137+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
120138

121139
- task: PowerShell@2
122140
displayName: Update Az Modules
123141
inputs:
124142
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
125-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "'
143+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/UpdateAzModules.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
126144

127145
- task: PowerShell@2
128146
displayName: Run Smoke Test
129147
inputs:
130148
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
131-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 "'
149+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
132150
failOnStderr: true
133151

134152

135153
- task: PowerShell@2
136154
displayName: 'Run Smoke Test Reversely'
137155
inputs:
138156
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
139-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse "'
157+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/RmCoreSmokeTests.ps1 -Reverse " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
140158
failOnStderr: true
141159

142160

143161
- task: PowerShell@2
144162
displayName: Clean Az Modules
145163
inputs:
146164
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
147-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"'
165+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
148166

149167
- task: PowerShell@2
150168
displayName: Install an individual module
151169
inputs:
152170
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
153-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName) "'
171+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAnIndividualModule.ps1 -Gallery $(GalleryName) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
154172

155173
- task: PowerShell@2
156174
displayName: Clean Az Modules
157175
inputs:
158176
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
159-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"'
177+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
160178

161179
- task: PowerShell@2
162180
displayName: Update an individual module
163181
inputs:
164182
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
165-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "'
183+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/UpdateAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
166184

167185
- task: PowerShell@2
168186
displayName: Clean Az Modules
169187
inputs:
170188
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
171-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"'
189+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
172190

173191
- task: PowerShell@2
174192
displayName: Install Az on top of an individual module
175193
inputs:
176194
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
177-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "'
195+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAzOnTopOfAnIndividualModule.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
178196

179197
- task: PowerShell@2
180198
displayName: Clean Az Modules
181199
inputs:
182200
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
183-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1"'
201+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/CleanAzModules.ps1" -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
184202

185203
- task: PowerShell@2
186204
displayName: Install an individual module on top of Az
187205
inputs:
188206
filePath: 'tools/Test/SmokeTest/ScriptsCaller.ps1'
189-
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) "'
207+
arguments: '-RequiredPsVersion ${{ parameters.psVersion }} -Script "./tools/Test/SmokeTest/InstallAnIndividualModuleOnTopOfAz.ps1 -Gallery $(GalleryName) -AllowEquality $(AllowEquality) " -PowerShellPath "${{ parameters.PowerShellPath }}" -AgentOS "$(Agent.OS)"'
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
[cmdletbinding()]
2+
param(
3+
[string]
4+
[Parameter(Mandatory = $true, Position = 0)]
5+
$DowanloadDir,
6+
[string]
7+
[Parameter(Mandatory = $true)]
8+
$AgentOS,
9+
[string]
10+
[Parameter(Mandatory = $true)]
11+
$AgentAarchitecture,
12+
[string]
13+
[Parameter(Mandatory = $false)]
14+
$PreviewVersionMetadata = 'https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json',
15+
[string]
16+
[Parameter(Mandatory = $false)]
17+
$DownloadURLPrefix = 'https://github.com/PowerShell/PowerShell/releases/download'
18+
)
19+
20+
switch ($AgentOS) {
21+
"Windows_NT" { $OS = "win" }
22+
"Linux" { $OS = "linux" }
23+
"Darwin" { $OS = "osx" }
24+
default { throw "PowerShell package for OS '$_' is not supported." }
25+
}
26+
27+
switch ($AgentAarchitecture) {
28+
"X86" { $Architecture = "x86" }
29+
"X64" { $Architecture = "x64" }
30+
"ARM" { $Architecture = "arm64" }
31+
default { throw "PowerShell package for OS architecture '$_' is not supported." }
32+
}
33+
34+
# Fetch the recent PowerShell preview release version from github file.
35+
$Metadata = Invoke-RestMethod $PreviewVersionMetadata
36+
# Remove the beginning 'v' from PreviewReleaseTag.
37+
# Eg. Change from 'v7.4.0-preview.1' to '7.4.0-preview.1'.
38+
$Release = $Metadata.PreviewReleaseTag -replace '^v'
39+
40+
if ($OS -eq "win") {
41+
$PackageName = "PowerShell-${Release}-${OS}-${Architecture}.zip"
42+
} else {
43+
$PackageName = "Powershell-${Release}-${OS}-${Architecture}.tar.gz"
44+
}
45+
46+
$null = New-Item -ItemType Directory -Path $DowanloadDir -ErrorAction SilentlyContinue
47+
$DownloadURL = "$DownloadURLPrefix/v${Release}/${PackageName}"
48+
Write-Verbose "About to download package from '$DownloadURL' to '$DowanloadDir'" -Verbose
49+
$PackagePath = Join-Path -Path $DowanloadDir -ChildPath $PackageName
50+
51+
Invoke-WebRequest -Uri $DownloadURL -OutFile $PackagePath

0 commit comments

Comments
 (0)