Skip to content

Commit 1f4362a

Browse files
authored
Add live test stages to sdk-client (#36300)
* Run live tests as part of release build * Live tests shouldn't run for PRs
1 parent c51c0d7 commit 1f4362a

File tree

4 files changed

+38
-11
lines changed

4 files changed

+38
-11
lines changed

eng/pipelines/templates/stages/archetype-net-release.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ parameters:
66
DevOpsFeedId: '29ec6040-b234-4e31-b139-33dc4287b756/fa8c16a3-dbe0-4de2-a297-03065ec1ba3f'
77
TargetDocRepoOwner: 'not-specified'
88
TargetDocRepoName: 'not-specified'
9+
Environment: nuget
910
stages:
1011
- stage: Signing
1112
dependsOn: ${{parameters.DependsOn}}
1213
jobs:
1314
- deployment: SignPackage
14-
environment: esrp
15+
environment: ${{parameters.Environment}}
1516
pool:
1617
name: azsdk-pool-mms-win-2022-general
1718
vmImage: windows-2022
@@ -49,7 +50,7 @@ stages:
4950
- deployment: TagRepository
5051
displayName: "Create release tag"
5152
condition: ne(variables['Skip.TagRepository'], 'true')
52-
environment: github
53+
environment: ${{parameters.Environment}}
5354

5455
pool:
5556
name: azsdk-pool-mms-win-2022-general
@@ -96,7 +97,7 @@ stages:
9697
- deployment: PublishPackage
9798
displayName: Publish package to Nuget.org and DevOps Feed
9899
condition: and(succeeded(), ne(variables['Skip.PublishPackage'], 'true'))
99-
environment: nuget
100+
environment: ${{parameters.Environment}}
100101
dependsOn: TagRepository
101102

102103
pool:
@@ -126,7 +127,7 @@ stages:
126127
- deployment: UploadSymbols
127128
displayName: Upload Symbols to Symbols Server
128129
condition: and(succeeded(), ne(variables['Skip.SymbolsUpload'], 'true'))
129-
environment: nuget
130+
environment: ${{parameters.Environment}}
130131
dependsOn: PublishPackage
131132

132133
pool:
@@ -153,7 +154,7 @@ stages:
153154
- deployment: PublicDocsMS
154155
displayName: Publish to Docs.MS
155156
condition: and(succeeded(), ne(variables['Skip.PublishDocs'], 'true'))
156-
environment: githubio
157+
environment: ${{parameters.Environment}}
157158
dependsOn: PublishPackage
158159

159160
pool:
@@ -186,7 +187,7 @@ stages:
186187
- deployment: PublishDocs
187188
displayName: Publish Docs to GitHub pages
188189
condition: and(succeeded(), ne(variables['Skip.PublishDocs'], 'true'))
189-
environment: githubio
190+
environment: ${{parameters.Environment}}
190191
dependsOn: PublishPackage
191192

192193
pool:
@@ -212,7 +213,7 @@ stages:
212213
- deployment: UpdatePackageVersion
213214
displayName: "Update Package Version"
214215
condition: and(succeeded(), ne(variables['Skip.UpdatePackageVersion'], 'true'))
215-
environment: github
216+
environment: ${{parameters.Environment}}
216217
dependsOn: PublishPackage
217218

218219
pool:

eng/pipelines/templates/stages/archetype-sdk-client.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ parameters:
5858
- name: LimitForPullRequest
5959
type: boolean
6060
default: false
61+
- name: LiveTestStages
62+
type: stageList
63+
default: []
64+
- name: ReleaseDependsOnLiveTests
65+
type: string
66+
default: not-specified
6167

6268
variables:
6369
- template: ../variables/globals.yml
@@ -92,14 +98,24 @@ stages:
9298

9399
# The Prerelease and Release stages are conditioned on whether we are building a pull request and the branch.
94100
- ${{if and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'internal'))}}:
101+
- ${{ parameters.LiveTestStages }}
102+
95103
- template: archetype-net-release.yml
96104
parameters:
97105
SDKType: ${{ parameters.SDKType }}
98106
ServiceDirectory: ${{ parameters.ServiceDirectory }}
99-
DependsOn: Build
107+
DependsOn:
108+
- Build
109+
# Only depend on live test stages if the build depends on live tests and the build reason is manual.
110+
# This prevents check-in builds and scheduled builds from having a requirement on live test stages.
111+
- ${{ if eq(parameters.ReleaseDependsOnLiveTests, 'true') }}:
112+
- ${{ each liveTestStage in parameters.LiveTestStages }}:
113+
- ${{ liveTestStage.stage }}
100114
Artifacts: ${{ parameters.Artifacts }}
101115
${{ if eq(parameters.ServiceDirectory, 'template') }}:
102116
TestPipeline: true
103117
ArtifactName: packages
104118
TargetDocRepoOwner: ${{ parameters.TargetDocRepoOwner }}
105119
TargetDocRepoName: ${{ parameters.TargetDocRepoName }}
120+
${{ if eq(parameters.ReleaseDependsOnLiveTests, 'false') }}:
121+
Environment: 'nuget-break-glass-approvers'

eng/pipelines/templates/stages/archetype-sdk-tests.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,14 @@ parameters:
102102
pathToPublish: '$(Build.ArtifactStagingDirectory)/SessionRecords'
103103
artifactName: SessionRecords
104104

105-
variables:
106-
- template: ../variables/globals.yml
107-
108105
stages:
109106
- ${{ each cloud in parameters.CloudConfig }}:
110107
- ${{ if or(contains(parameters.Clouds, cloud.key), and(contains(variables['Build.DefinitionName'], 'tests-weekly'), contains(parameters.SupportedClouds, cloud.key))) }}:
111108
- ${{ if not(contains(parameters.UnsupportedClouds, cloud.key)) }}:
112109
- stage: ${{ cloud.key }}
113110
dependsOn: []
111+
variables:
112+
- template: ../variables/globals.yml
114113
jobs:
115114
- template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml
116115
parameters:

sdk/template/ci.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ pr:
3333
- eng/common/
3434
#endif
3535

36+
parameters:
37+
- name: AllowFailingLiveTests
38+
displayName: Allow release with failing live tests
39+
type: boolean
40+
default: false
41+
3642
extends:
3743
template: /eng/pipelines/templates/stages/archetype-sdk-client.yml
3844
parameters:
@@ -41,3 +47,8 @@ extends:
4147
Artifacts:
4248
- name: Azure.Template
4349
safeName: AzureTemplate
50+
ReleaseDependsOnLiveTests: ${{ not(parameters.AllowFailingLiveTests) }}
51+
LiveTestStages:
52+
- template: /eng/pipelines/templates/stages/archetype-sdk-tests.yml
53+
parameters:
54+
ServiceDirectory: template

0 commit comments

Comments
 (0)