Skip to content

Commit 1a813f7

Browse files
committed
Use common upload artifacts directory to avoid scanning entire artifacts folder
1 parent 2329cf9 commit 1a813f7

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

azure-pipelines-official.yml

+37-11
Original file line numberDiff line numberDiff line change
@@ -144,52 +144,55 @@ extends:
144144
- job: OfficialBuild
145145
displayName: Official Build
146146
timeoutInMinutes: 360
147+
variables:
148+
- name: UploadArtifactsDirectory
149+
value: $(Build.SourcesDirectory)\artifacts\UploadArtifacts
147150
templateContext:
148-
outputParentDirectory: $(Build.SourcesDirectory)\artifacts
151+
outputParentDirectory: $(UploadArtifactsDirectory)
149152
outputs:
150153

151154
# Publish OptProf generated JSON files as a pipeline artifact. This allows for easy inspection from
152155
# a build execution.
153156
- output: pipelineArtifact
154157
displayName: 'Publish OptProf Data Files'
155158
condition: succeeded()
156-
targetPath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data'
159+
targetPath: '$(UploadArtifactsDirectory)\OptProf\$(BuildConfiguration)\Data'
157160
artifactName: 'OptProf Data Files'
158161

159162
- output: pipelineArtifact
160163
displayName: 'Publish Logs'
161164
condition: succeededOrFailed()
162-
targetPath: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)'
165+
targetPath: '$(UploadArtifactsDirectory)\log\$(BuildConfiguration)'
163166
artifactName: 'Build Diagnostic Files'
164167
publishLocation: Container
165168

166169
- output: pipelineArtifact
167170
displayName: 'Publish Ngen Logs'
168171
condition: and(succeeded(), ${{ not(parameters.SkipApplyOptimizationData) }})
169-
targetPath: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)\ngen'
172+
targetPath: '$(UploadArtifactsDirectory)\log\$(BuildConfiguration)\ngen'
170173
artifactName: 'NGen Logs'
171174
publishLocation: Container
172175

173176
# Publish an artifact that the RoslynInsertionTool is able to find by its name.
174177
- output: pipelineArtifact
175178
displayName: 'Publish Artifact VSSetup'
176179
condition: succeeded()
177-
targetPath: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)'
180+
targetPath: '$(UploadArtifactsDirectory)\VSSetup\$(BuildConfiguration)'
178181
artifactName: 'VSSetup'
179182

180183
# Publish our NuPkgs as an artifact. The name of this artifact must be PackageArtifacts as the
181184
# arcade templates depend on the name.
182185
- output: pipelineArtifact
183186
displayName: 'Publish Artifact Packages'
184187
condition: succeeded()
185-
targetPath: '$(Build.SourcesDirectory)\artifacts\packages\$(BuildConfiguration)'
188+
targetPath: '$(UploadArtifactsDirectory)\packages\$(BuildConfiguration)'
186189
ArtifactName: 'PackageArtifacts'
187190

188191
# Publish Asset Manifests for Build Asset Registry job
189192
- output: pipelineArtifact
190193
displayName: 'Publish Asset Manifests'
191194
condition: succeeded()
192-
targetPath: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)\AssetManifest'
195+
targetPath: '$(UploadArtifactsDirectory)\log\$(BuildConfiguration)\AssetManifest'
193196
ArtifactName: AssetManifests
194197

195198
# Publish OptProf configuration files to the artifact service
@@ -199,7 +202,7 @@ extends:
199202
condition: succeeded()
200203
dropServiceURI: 'https://devdiv.artifacts.visualstudio.com'
201204
buildNumber: 'ProfilingInputs/$(System.TeamProject)/$(Build.Repository.Name)/$(SourceBranchName)/$(Build.BuildNumber)'
202-
sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data'
205+
sourcePath: '$(UploadArtifactsDirectory)\OptProf\$(BuildConfiguration)\Data'
203206
toLowerCase: false
204207
usePat: false
205208
retentionDays: 90
@@ -208,8 +211,8 @@ extends:
208211
- output: nuget
209212
displayName: 'Publish CoreXT Packages'
210213
condition: succeeded()
211-
packageParentPath: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\DevDivPackages'
212-
packagesToPush: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\DevDivPackages\**\*.nupkg'
214+
packageParentPath: '$(UploadArtifactsDirectory)\VSSetup\$(BuildConfiguration)\DevDivPackages'
215+
packagesToPush: '$(UploadArtifactsDirectory)\VSSetup\$(BuildConfiguration)\DevDivPackages\**\*.nupkg'
213216
allowPackageConflicts: true
214217
nuGetFeedType: external
215218
publishFeedCredentials: 'DevDiv - VS package feed'
@@ -219,7 +222,7 @@ extends:
219222
- output: microBuildVstsDrop
220223
displayName: Upload VSTS Drop
221224
condition: succeeded()
222-
dropFolder: 'artifacts\VSSetup\$(BuildConfiguration)\Insertion'
225+
dropFolder: '$(UploadArtifactsDirectory)\VSSetup\$(BuildConfiguration)\Insertion'
223226
dropName: $(VisualStudio.DropName)
224227
accessToken: $(_DevDivDropAccessToken)
225228
dropRetentionDays: 90
@@ -349,6 +352,29 @@ extends:
349352
testRunTitle: 'Unit Tests'
350353
condition: and(succeededOrFailed(), ne(variables['SkipTests'], 'true'))
351354

355+
# Copy all the artifacts we're going to upload from this build to a common directory.
356+
# This lets guardian scan all the upload artifacts in one go, while also avoiding
357+
# scanning all the other random build artifacts.
358+
- powershell: |
359+
$commonArtifactsDir = "$(UploadArtifactsDirectory)"
360+
New-Item -ItemType Directory -Force -Path $commonArtifactsDir
361+
362+
$artifactsToCopy = @(
363+
"$(Build.SourcesDirectory)\artifacts\OptProf\",
364+
"$(Build.SourcesDirectory)\artifacts\log\",
365+
"$(Build.SourcesDirectory)\artifacts\VSSetup\",
366+
"$(Build.SourcesDirectory)\artifacts\packages\"
367+
)
368+
369+
foreach ($artifact in $artifactsToCopy) {
370+
if (Test-Path $artifact) {
371+
Copy-Item -Path $artifact -Destination $commonArtifactsDir -Recurse -Force
372+
} else {
373+
Write-Host "Artifact path not found- $artifact"
374+
}
375+
}
376+
displayName: Copy Artifacts to Common Directory
377+
352378
# Publish to Build Asset Registry
353379
- template: /eng/common/templates-official/job/publish-build-assets.yml@self
354380
parameters:

0 commit comments

Comments
 (0)