@@ -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