@@ -25,7 +25,9 @@ parameters:
2525 enablePublishBuildAssets : false
2626 enablePublishTestResults : false
2727 enablePublishUsingPipelines : false
28+ enableBuildRetry : false
2829 disableComponentGovernance : ' '
30+ componentGovernanceIgnoreDirectories : ' '
2931 mergeTestResults : false
3032 testRunTitle : ' '
3133 testResultsFormat : ' '
@@ -34,7 +36,7 @@ parameters:
3436 runAsPublic : false
3537# Sbom related params
3638 enableSbom : true
37- PackageVersion : 6 .0.0
39+ PackageVersion : 7 .0.0
3840 BuildDropPath : ' $(Build.SourcesDirectory)/artifacts'
3941
4042jobs :
@@ -94,10 +96,20 @@ jobs:
9496 - ${{ if ne(variable.group, '') }} :
9597 - group : ${{ variable.group }}
9698
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+
97109 # handle key-value variable syntax.
98110 # example:
99111 # - [key]: [value]
100- - ${{ if and(eq(variable.name, ''), eq(variable.group, '')) }} :
112+ - ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '') ) }} :
101113 - ${{ each pair in variable }} :
102114 - name : ${{ pair.key }}
103115 value : ${{ pair.value }}
@@ -127,9 +139,10 @@ jobs:
127139 continueOnError : ${{ parameters.continueOnError }}
128140 condition : and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
129141
142+ - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }} :
130143 - task : NuGetAuthenticate@1
131144
132- - ${{ if or(eq (parameters.artifacts.download, 'true '), ne(parameters.artifacts.download, '')) }} :
145+ - ${{ if and(ne (parameters.artifacts.download, 'false '), ne(parameters.artifacts.download, '')) }} :
133146 - task : DownloadPipelineArtifact@2
134147 inputs :
135148 buildType : current
@@ -147,6 +160,7 @@ jobs:
147160 languages : ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
148161 environment : ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
149162 richNavLogOutputDirectory : $(Build.SourcesDirectory)/artifacts/bin
163+ uploadRichNavArtifacts : ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
150164 continueOnError : true
151165
152166 - template : /eng/common/templates-official/steps/component-governance.yml
@@ -158,6 +172,7 @@ jobs:
158172 disableComponentGovernance : true
159173 ${{ else }} :
160174 disableComponentGovernance : ${{ parameters.disableComponentGovernance }}
175+ componentGovernanceIgnoreDirectories : ${{ parameters.componentGovernanceIgnoreDirectories }}
161176
162177 - ${{ if eq(parameters.enableMicrobuild, 'true') }} :
163178 - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
@@ -169,7 +184,7 @@ jobs:
169184 TeamName : $(_TeamName)
170185
171186 - ${{ 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, '')) }} :
173188 - task : CopyFiles@2
174189 displayName : Gather binaries for publish to artifacts
175190 inputs :
@@ -190,7 +205,7 @@ jobs:
190205 ArtifactName : ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
191206 continueOnError : true
192207 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, '')) }} :
194209 - task : 1ES.PublishPipelineArtifact@1
195210 inputs :
196211 targetPath : ' artifacts/log'
@@ -199,25 +214,6 @@ jobs:
199214 continueOnError : true
200215 condition : always()
201216
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-
221217 - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }} :
222218 - task : 1ES.PublishBuildArtifacts@1
223219 displayName : Publish Logs
@@ -250,27 +246,18 @@ jobs:
250246 mergeTestResults : ${{ parameters.mergeTestResults }}
251247 continueOnError : true
252248 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'))
271249
272250 - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }} :
273251 - template : /eng/common/templates-official/steps/generate-sbom.yml
274252 parameters :
275253 PackageVersion : ${{ parameters.packageVersion}}
276254 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