@@ -25,7 +25,9 @@ parameters:
25
25
enablePublishBuildAssets : false
26
26
enablePublishTestResults : false
27
27
enablePublishUsingPipelines : false
28
+ enableBuildRetry : false
28
29
disableComponentGovernance : ' '
30
+ componentGovernanceIgnoreDirectories : ' '
29
31
mergeTestResults : false
30
32
testRunTitle : ' '
31
33
testResultsFormat : ' '
@@ -34,7 +36,7 @@ parameters:
34
36
runAsPublic : false
35
37
# Sbom related params
36
38
enableSbom : true
37
- PackageVersion : 6 .0.0
39
+ PackageVersion : 7 .0.0
38
40
BuildDropPath : ' $(Build.SourcesDirectory)/artifacts'
39
41
40
42
jobs :
@@ -94,10 +96,20 @@ jobs:
94
96
- ${{ if ne(variable.group, '') }} :
95
97
- group : ${{ variable.group }}
96
98
99
+ # handle template variable syntax
100
+ # example:
101
+ # - template: path/to/template.yml
102
+ # parameters:
103
+ # [key]: [value]
104
+ - ${{ if ne(variable.template, '') }} :
105
+ - template : ${{ variable.template }}
106
+ ${{ if ne(variable.parameters, '') }} :
107
+ parameters : ${{ variable.parameters }}
108
+
97
109
# handle key-value variable syntax.
98
110
# example:
99
111
# - [key]: [value]
100
- - ${{ if and(eq(variable.name, ''), eq(variable.group, '')) }} :
112
+ - ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '') ) }} :
101
113
- ${{ each pair in variable }} :
102
114
- name : ${{ pair.key }}
103
115
value : ${{ pair.value }}
@@ -127,9 +139,10 @@ jobs:
127
139
continueOnError : ${{ parameters.continueOnError }}
128
140
condition : and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
129
141
142
+ - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }} :
130
143
- task : NuGetAuthenticate@1
131
144
132
- - ${{ if or(eq (parameters.artifacts.download, 'true '), ne(parameters.artifacts.download, '')) }} :
145
+ - ${{ if and(ne (parameters.artifacts.download, 'false '), ne(parameters.artifacts.download, '')) }} :
133
146
- task : DownloadPipelineArtifact@2
134
147
inputs :
135
148
buildType : current
@@ -147,6 +160,7 @@ jobs:
147
160
languages : ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
148
161
environment : ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
149
162
richNavLogOutputDirectory : $(Build.SourcesDirectory)/artifacts/bin
163
+ uploadRichNavArtifacts : ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
150
164
continueOnError : true
151
165
152
166
- template : /eng/common/templates-official/steps/component-governance.yml
@@ -158,6 +172,7 @@ jobs:
158
172
disableComponentGovernance : true
159
173
${{ else }} :
160
174
disableComponentGovernance : ${{ parameters.disableComponentGovernance }}
175
+ componentGovernanceIgnoreDirectories : ${{ parameters.componentGovernanceIgnoreDirectories }}
161
176
162
177
- ${{ if eq(parameters.enableMicrobuild, 'true') }} :
163
178
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
@@ -169,7 +184,7 @@ jobs:
169
184
TeamName : $(_TeamName)
170
185
171
186
- ${{ if ne(parameters.artifacts.publish, '') }} :
172
- - ${{ if or(eq (parameters.artifacts.publish.artifacts, 'true '), ne(parameters.artifacts.publish.artifacts, '')) }} :
187
+ - ${{ if and(ne (parameters.artifacts.publish.artifacts, 'false '), ne(parameters.artifacts.publish.artifacts, '')) }} :
173
188
- task : CopyFiles@2
174
189
displayName : Gather binaries for publish to artifacts
175
190
inputs :
@@ -190,7 +205,7 @@ jobs:
190
205
ArtifactName : ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
191
206
continueOnError : true
192
207
condition : always()
193
- - ${{ if or(eq (parameters.artifacts.publish.logs, 'true '), ne(parameters.artifacts.publish.logs, '')) }} :
208
+ - ${{ if and(ne (parameters.artifacts.publish.logs, 'false '), ne(parameters.artifacts.publish.logs, '')) }} :
194
209
- task : 1ES.PublishPipelineArtifact@1
195
210
inputs :
196
211
targetPath : ' artifacts/log'
@@ -199,25 +214,6 @@ jobs:
199
214
continueOnError : true
200
215
condition : always()
201
216
202
- - ${{ if or(eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }} :
203
- - ${{ if and(ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
204
- - task : CopyFiles@2
205
- displayName : Gather Asset Manifests
206
- inputs :
207
- SourceFolder : ' $(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
208
- TargetFolder : ' $(Build.ArtifactStagingDirectory)/AssetManifests'
209
- continueOnError : ${{ parameters.continueOnError }}
210
- condition : and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
211
-
212
- - task : 1ES.PublishBuildArtifacts@1
213
- displayName : Push Asset Manifests
214
- inputs :
215
- PathtoPublish : ' $(Build.ArtifactStagingDirectory)/AssetManifests'
216
- PublishLocation : Container
217
- ArtifactName : AssetManifests
218
- continueOnError : ${{ parameters.continueOnError }}
219
- condition : and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
220
-
221
217
- ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }} :
222
218
- task : 1ES.PublishBuildArtifacts@1
223
219
displayName : Publish Logs
@@ -250,27 +246,18 @@ jobs:
250
246
mergeTestResults : ${{ parameters.mergeTestResults }}
251
247
continueOnError : true
252
248
condition : always()
253
-
254
- - ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
255
- - task : CopyFiles@2
256
- displayName : Gather Asset Manifests
257
- inputs :
258
- SourceFolder : ' $(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest'
259
- TargetFolder : ' $(Build.StagingDirectory)/AssetManifests'
260
- continueOnError : ${{ parameters.continueOnError }}
261
- condition : and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
262
-
263
- - task : 1ES.PublishBuildArtifacts@1
264
- displayName : Push Asset Manifests
265
- inputs :
266
- PathtoPublish : ' $(Build.StagingDirectory)/AssetManifests'
267
- PublishLocation : Container
268
- ArtifactName : AssetManifests
269
- continueOnError : ${{ parameters.continueOnError }}
270
- condition : and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
271
249
272
250
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }} :
273
251
- template : /eng/common/templates-official/steps/generate-sbom.yml
274
252
parameters :
275
253
PackageVersion : ${{ parameters.packageVersion}}
276
254
BuildDropPath : ${{ parameters.buildDropPath }}
255
+ IgnoreDirectories : ${{ parameters.componentGovernanceIgnoreDirectories }}
256
+
257
+ - ${{ if eq(parameters.enableBuildRetry, 'true') }} :
258
+ - task : 1ES.PublishPipelineArtifact@1
259
+ inputs :
260
+ targetPath : ' $(Build.SourcesDirectory)\eng\common\BuildConfiguration'
261
+ artifactName : ' BuildConfiguration'
262
+ displayName : ' Publish build retry configuration'
263
+ continueOnError : true
0 commit comments