@@ -168,6 +168,13 @@ jobs:
168168      displayName : Publish Artifacts 
169169      sbomEnabled : true 
170170
171+     #  Using build artifacts to enable publishing the vertical manifests to a single artifact from different jobs
172+     - output : buildArtifacts 
173+       PathtoPublish : $(Build.ArtifactStagingDirectory)/manifests/$(Agent.JobName).xml 
174+       ArtifactName : VerticalManifests 
175+       displayName : Publish Vertical Manifest 
176+       sbomEnabled : false 
177+ 
171178    - ${{ if not(parameters.isBuiltFromVmr) }} :
172179      - output : pipelineArtifact 
173180        displayName : Upload failed patches 
@@ -271,7 +278,7 @@ jobs:
271278    - script : | 
272279        set extraBuildProperties= 
273280        if not [${{ parameters.buildPass }}]==[] set extraBuildProperties=%extraBuildProperties% /p:DotNetBuildPass=${{ parameters.buildPass }} 
274-         call build.cmd -ci -cleanWhileBuilding -prepareMachine %devArgument% /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} %extraBuildProperties% ${{ parameters.extraProperties }} 
281+         call build.cmd -ci -cleanWhileBuilding -prepareMachine %devArgument% /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} /p:VerticalName=$(Agent.JobName)  %extraBuildProperties% ${{ parameters.extraProperties }} 
275282      displayName: Build 
276283      workingDirectory: ${{ variables.sourcesPath }} 
277284      env: 
@@ -282,7 +289,7 @@ jobs:
282289
283290     - ${{ if eq(parameters.runTests, 'True') }} :
284291      - script : | 
285-           call build.cmd -ci -prepareMachine -test -excludeCIBinarylog /bl:artifacts/log/Release/Test.binlog /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} ${{ parameters.extraProperties }} 
292+           call build.cmd -ci -prepareMachine -test -excludeCIBinarylog /bl:artifacts/log/Release/Test.binlog /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} /p:VerticalName=$(Agent.JobName)  ${{ parameters.extraProperties }} 
286293        displayName: Run Tests 
287294        workingDirectory: ${{ variables.sourcesPath }} 
288295        timeoutInMinutes: ${{ variables.runTestsTimeout }} 
@@ -380,6 +387,8 @@ jobs:
380387          extraBuildProperties="$extraBuildProperties ${{ parameters.extraProperties }}" 
381388        fi 
382389
390+         extraBuildProperties="$extraBuildProperties /p:VerticalName=$(Agent.JobName)" 
391+ 
383392        buildArgs="$(additionalBuildArgs) $customBuildArgs $extraBuildProperties" 
384393
385394        # Only use Docker when a container is specified 
@@ -455,6 +464,8 @@ jobs:
455464            customBuildArgs="$customBuildArgs --target-rid ${{ parameters.targetRid }}" 
456465          fi 
457466
467+           extraBuildProperties="$extraBuildProperties /p:VerticalName=$(Agent.JobName)" 
468+ 
458469          if [[ -n "${{ parameters.extraProperties }}" ]]; then 
459470            extraBuildProperties="$extraBuildProperties ${{ parameters.extraProperties }}" 
460471          fi 
@@ -585,6 +596,19 @@ jobs:
585596       TargetFolder : $(Build.ArtifactStagingDirectory)/publishing 
586597    displayName : Copy artifacts to Artifact Staging Directory 
587598
599+   - ${{ if eq(parameters.targetOS, 'windows') }} :
600+     - powershell : | 
601+         $sourcePath = "$(sourcesPath)/artifacts/manifests/VerticalManifest.xml" 
602+         $targetPath = "$(Build.ArtifactStagingDirectory)/manifests/$(Agent.JobName).xml" 
603+         New-Item -ItemType Directory -Path "$(Build.ArtifactStagingDirectory)/manifests" -Force | Out-Null 
604+         Copy-Item $sourcePath -Destination $targetPath -Force 
605+       displayName: Copy vertical manifest to Artifact Staging Directory 
606+    - ${{ else }} :
607+     - script : | 
608+         mkdir -p "$(Build.ArtifactStagingDirectory)/manifests" 
609+         cp "$(sourcesPath)/artifacts/manifests/VerticalManifest.xml" "$(Build.ArtifactStagingDirectory)/manifests/$(Agent.JobName).xml" 
610+       displayName: Copy vertical manifest to Artifact Staging Directory 
611+ 
588612   #  When building from source, the Private.SourceBuilt.Artifacts archive already contains the nuget packages
589613  - ${{ if ne(parameters.buildSourceOnly, 'true') }} :
590614    - task : CopyFiles@2 
@@ -598,3 +622,11 @@ jobs:
598622      artifact : $(Agent.JobName)_Artifacts 
599623      displayName : Publish Artifacts 
600624      continueOnError : true 
625+ 
626+     #  Using build artifacts to enable publishing the vertical manifests to a single artifact from different jobs
627+     - task : PublishBuildArtifacts@1 
628+       inputs :
629+         PathtoPublish : $(Build.ArtifactStagingDirectory)/manifests/$(Agent.JobName).xml 
630+         ArtifactName : VerticalManifests 
631+       displayName : Publish Vertical Manifest 
632+       condition : succeededOrFailed() 
0 commit comments