msbuild
160 строк · 6.4 Кб
1parameters:
2configuration: 'Debug'
3
4# Optional: condition for the job to run
5condition: ''
6
7# Optional: 'true' if future jobs should run even if this job fails
8continueOnError: false
9
10# Optional: dependencies of the job
11dependsOn: ''
12
13# Optional: Include PublishBuildArtifacts task
14enablePublishBuildArtifacts: false
15
16# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
17pool: {}
18
19# Optional: should run as a public build even in the internal project
20# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
21runAsPublic: false
22
23# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
24publishUsingPipelines: false
25
26# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
27publishAssetsImmediately: false
28
29artifactsPublishingAdditionalParameters: ''
30
31signingValidationAdditionalParameters: ''
32
33jobs:
34- job: Asset_Registry_Publish
35
36dependsOn: ${{ parameters.dependsOn }}
37timeoutInMinutes: 150
38
39${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
40displayName: Publish Assets
41${{ else }}:
42displayName: Publish to Build Asset Registry
43
44variables:
45- template: /eng/common/templates-official/variables/pool-providers.yml
46- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
47- group: Publish-Build-Assets
48- group: AzureDevOps-Artifact-Feeds-Pats
49- name: runCodesignValidationInjection
50value: false
51- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
52- template: /eng/common/templates-official/post-build/common-variables.yml
53
54pool:
55# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
56${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
57name: AzurePipelines-EO
58image: 1ESPT-Windows2022
59demands: Cmd
60os: windows
61# If it's not devdiv, it's dnceng
62${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
63name: NetCore1ESPool-Publishing-Internal
64image: windows.vs2019.amd64
65os: windows
66steps:
67- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
68- task: DownloadBuildArtifacts@0
69displayName: Download artifact
70inputs:
71artifactName: AssetManifests
72downloadPath: '$(Build.StagingDirectory)/Download'
73checkDownloadedFiles: true
74condition: ${{ parameters.condition }}
75continueOnError: ${{ parameters.continueOnError }}
76
77- task: NuGetAuthenticate@1
78
79- task: AzureCLI@2
80displayName: Publish Build Assets
81inputs:
82azureSubscription: "Darc: Maestro Production"
83scriptType: ps
84scriptLocation: scriptPath
85scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1
86arguments: >
87-task PublishBuildAssets -restore -msbuildEngine dotnet
88/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
89/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
90/p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
91/p:OfficialBuildId=$(Build.BuildNumber)
92condition: ${{ parameters.condition }}
93continueOnError: ${{ parameters.continueOnError }}
94
95- task: powershell@2
96displayName: Create ReleaseConfigs Artifact
97inputs:
98targetType: inline
99script: |
100New-Item -Path "$(Build.StagingDirectory)/ReleaseConfigs" -ItemType Directory -Force
101$filePath = "$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt"
102Add-Content -Path $filePath -Value $(BARBuildId)
103Add-Content -Path $filePath -Value "$(DefaultChannels)"
104Add-Content -Path $filePath -Value $(IsStableBuild)
105
106- task: 1ES.PublishBuildArtifacts@1
107displayName: Publish ReleaseConfigs Artifact
108inputs:
109PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs'
110PublishLocation: Container
111ArtifactName: ReleaseConfigs
112
113- task: powershell@2
114displayName: Check if SymbolPublishingExclusionsFile.txt exists
115inputs:
116targetType: inline
117script: |
118$symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
119if(Test-Path -Path $symbolExclusionfile)
120{
121Write-Host "SymbolExclusionFile exists"
122Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true"
123}
124else{
125Write-Host "Symbols Exclusion file does not exists"
126Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false"
127}
128
129- task: 1ES.PublishBuildArtifacts@1
130displayName: Publish SymbolPublishingExclusionsFile Artifact
131condition: eq(variables['SymbolExclusionFile'], 'true')
132inputs:
133PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
134PublishLocation: Container
135ArtifactName: ReleaseConfigs
136
137- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
138- template: /eng/common/templates-official/post-build/setup-maestro-vars.yml
139parameters:
140BARBuildId: ${{ parameters.BARBuildId }}
141PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
142
143- task: AzureCLI@2
144displayName: Publish Using Darc
145inputs:
146azureSubscription: "Darc: Maestro Production"
147scriptType: ps
148scriptLocation: scriptPath
149scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
150arguments: -BuildId $(BARBuildId)
151-PublishingInfraVersion 3
152-AzdoToken '$(System.AccessToken)'
153-WaitPublishingFinish true
154-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
155-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
156
157- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
158- template: /eng/common/templates-official/steps/publish-logs.yml
159parameters:
160JobLabel: 'Publish_Artifacts_Logs'
161