Skip to content

Commit 34c6936

Browse files
committed
Move all drops to a subfolder
This saves on scanning the final output folder unnecessarily.
1 parent fc9ee89 commit 34c6936

File tree

1 file changed

+53
-8
lines changed

1 file changed

+53
-8
lines changed

azure-pipelines/.vsts-dotnet-build-jobs.yml

Lines changed: 53 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,46 +23,46 @@ jobs:
2323
timeoutInMinutes: 180
2424

2525
templateContext:
26-
outputParentDirectory: '$(Build.SourcesDirectory)\artifacts'
26+
outputParentDirectory: '$(Build.SourcesDirectory)\artifacts\official'
2727
outputs:
2828
# Publish OptProf configuration files
2929
- output: artifactsDrop
30-
sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data'
30+
sourcePath: '$(Build.SourcesDirectory)\artifacts\official\OptProf\$(BuildConfiguration)\Data'
3131
dropServiceURI: 'https://devdiv.artifacts.visualstudio.com'
3232
dropMetadataContainerName: 'ProfilingInputs/DevDiv/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)'
3333

3434
# Publish bootstrapper info for OptProf data collection run to consume
3535
- output: buildArtifacts
36-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\MicroBuild\Output'
36+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\official\MicroBuild\Output'
3737
ArtifactName: MicroBuildOutputs
3838

3939
# RAINES TODO: switch to pipeline?
4040
# RAINES TODO: how to get always()?
4141
- output: buildArtifacts
42-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)'
42+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\official\log\$(BuildConfiguration)'
4343
ArtifactName: logs
4444

4545
# Publish test configuration for OptProf data collection
4646
- output: buildArtifacts
47-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)'
47+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\official\VSSetup\$(BuildConfiguration)'
4848
ArtifactName: VSSetup
4949

5050
# Archive NuGet packages to DevOps.
5151
# Publish our NuPkgs as an artifact. The name of this artifact must be PackageArtifacts as the
5252
# arcade templates depend on the name.
5353
- output: buildArtifacts
54-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\packages\$(BuildConfiguration)'
54+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\official\packages\$(BuildConfiguration)'
5555
ArtifactName: PackageArtifacts
5656

5757
# Publish "IntelliSense" XSD files to their own artifact
5858
# so it can be consumed by the insertion-to-VS job
5959
- output: pipelineArtifact
60-
targetPath: '$(Build.SourcesDirectory)\artifacts\xsd'
60+
targetPath: '$(Build.SourcesDirectory)\artifacts\official\xsd'
6161
artifactName: xsd
6262

6363
# Publish Asset Manifests for Build Asset Registry job
6464
- output: buildArtifacts
65-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)\AssetManifest'
65+
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\official\log\$(BuildConfiguration)\AssetManifest'
6666
ArtifactName: AssetManifests
6767

6868
variables:
@@ -185,6 +185,51 @@ jobs:
185185
vsDropServiceUri: 'https://vsdrop.corp.microsoft.com/file/v1'
186186
condition: succeeded()
187187

188+
- pwsh: |
189+
$ErrorActionPreference = 'Stop'
190+
191+
$sourceRoot = Join-Path '$(Build.SourcesDirectory)' 'artifacts'
192+
$targetRoot = Join-Path $sourceRoot 'official'
193+
194+
if (-not (Test-Path $targetRoot)) {
195+
New-Item -Path $targetRoot -ItemType Directory | Out-Null
196+
}
197+
198+
$paths = @(
199+
"OptProf/$(BuildConfiguration)/Data",
200+
'$(Build.StagingDirectory)/MicroBuild/Output',
201+
"log/$(BuildConfiguration)",
202+
"VSSetup/$(BuildConfiguration)",
203+
"packages/$(BuildConfiguration)",
204+
'xsd'
205+
)
206+
207+
foreach ($relativePath in $paths) {
208+
$from = Join-Path $sourceRoot $relativePath
209+
if (-not (Test-Path $from)) {
210+
continue
211+
}
212+
213+
$to = Join-Path $targetRoot $relativePath
214+
$parent = Split-Path $to -Parent
215+
if (-not (Test-Path $parent)) {
216+
New-Item -Path $parent -ItemType Directory -Force | Out-Null
217+
}
218+
219+
$robocopyResult = & robocopy $from $to /E /MOVE /NFL /NDL /NJH /NJS /NP
220+
$exitCode = $LASTEXITCODE
221+
if ($exitCode -ge 8) {
222+
$robocopyResult | Out-String | Write-Host
223+
throw "Robocopy failed with exit code $exitCode while moving '$relativePath'."
224+
}
225+
226+
if (Test-Path $from) {
227+
Remove-Item $from -Recurse -Force
228+
}
229+
}
230+
231+
$global:LASTEXITCODE = 0
232+
displayName: 'Move build artifacts into official folder'
188233
189234
# Tag the build at the very end when we know it's been successful.
190235
- task: colinsalmcorner.colinsalmcorner-buildtasks.tag-build-task.tagBuildOrRelease@0

0 commit comments

Comments
 (0)