msbuild

Форк
0
/
publish-build-assets.yml 
160 строк · 6.4 Кб
1
parameters:
2
  configuration: 'Debug'
3

4
  # Optional: condition for the job to run
5
  condition: ''
6

7
  # Optional: 'true' if future jobs should run even if this job fails
8
  continueOnError: false
9

10
  # Optional: dependencies of the job
11
  dependsOn: ''
12

13
  # Optional: Include PublishBuildArtifacts task
14
  enablePublishBuildArtifacts: false
15

16
  # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
17
  pool: {}
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.
21
  runAsPublic: false
22

23
  # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
24
  publishUsingPipelines: false
25

26
  # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
27
  publishAssetsImmediately: false
28

29
  artifactsPublishingAdditionalParameters: ''
30

31
  signingValidationAdditionalParameters: ''
32

33
jobs:
34
- job: Asset_Registry_Publish
35

36
  dependsOn: ${{ parameters.dependsOn }}
37
  timeoutInMinutes: 150
38

39
  ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
40
    displayName: Publish Assets
41
  ${{ else }}:
42
    displayName: Publish to Build Asset Registry
43

44
  variables:
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
50
      value: false
51
    - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
52
      - template: /eng/common/templates-official/post-build/common-variables.yml
53

54
  pool:
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') }}:
57
      name: AzurePipelines-EO
58
      image: 1ESPT-Windows2022
59
      demands: Cmd
60
      os: windows
61
    # If it's not devdiv, it's dnceng
62
    ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
63
      name: NetCore1ESPool-Publishing-Internal
64
      image: windows.vs2019.amd64
65
      os: windows
66
  steps:
67
  - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
68
    - task: DownloadBuildArtifacts@0
69
      displayName: Download artifact
70
      inputs:
71
        artifactName: AssetManifests
72
        downloadPath: '$(Build.StagingDirectory)/Download'
73
        checkDownloadedFiles: true
74
      condition: ${{ parameters.condition }}
75
      continueOnError: ${{ parameters.continueOnError }}
76
    
77
    - task: NuGetAuthenticate@1
78

79
    - task: AzureCLI@2
80
      displayName: Publish Build Assets
81
      inputs:
82
        azureSubscription: "Darc: Maestro Production"
83
        scriptType: ps
84
        scriptLocation: scriptPath
85
        scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1
86
        arguments: >
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)
92
      condition: ${{ parameters.condition }}
93
      continueOnError: ${{ parameters.continueOnError }}
94
    
95
    - task: powershell@2
96
      displayName: Create ReleaseConfigs Artifact
97
      inputs:
98
        targetType: inline
99
        script: |
100
          New-Item -Path "$(Build.StagingDirectory)/ReleaseConfigs" -ItemType Directory -Force
101
          $filePath = "$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt"
102
          Add-Content -Path $filePath -Value $(BARBuildId)
103
          Add-Content -Path $filePath -Value "$(DefaultChannels)"
104
          Add-Content -Path $filePath -Value $(IsStableBuild)
105
    
106
    - task: 1ES.PublishBuildArtifacts@1
107
      displayName: Publish ReleaseConfigs Artifact
108
      inputs:
109
        PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs'
110
        PublishLocation: Container
111
        ArtifactName: ReleaseConfigs
112

113
    - task: powershell@2
114
      displayName: Check if SymbolPublishingExclusionsFile.txt exists
115
      inputs:
116
        targetType: inline
117
        script: |
118
          $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
119
          if(Test-Path -Path $symbolExclusionfile)
120
          {
121
            Write-Host "SymbolExclusionFile exists"
122
            Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true"
123
          }
124
          else{
125
           Write-Host "Symbols Exclusion file does not exists"
126
           Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false"
127
          }
128

129
    - task: 1ES.PublishBuildArtifacts@1
130
      displayName: Publish SymbolPublishingExclusionsFile Artifact
131
      condition: eq(variables['SymbolExclusionFile'], 'true') 
132
      inputs:
133
        PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
134
        PublishLocation: Container
135
        ArtifactName: ReleaseConfigs
136

137
    - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
138
      - template: /eng/common/templates-official/post-build/setup-maestro-vars.yml
139
        parameters:
140
          BARBuildId: ${{ parameters.BARBuildId }}
141
          PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
142

143
      - task: AzureCLI@2
144
        displayName: Publish Using Darc
145
        inputs:
146
          azureSubscription: "Darc: Maestro Production"
147
          scriptType: ps
148
          scriptLocation: scriptPath
149
          scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
150
          arguments: -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
159
        parameters:
160
          JobLabel: 'Publish_Artifacts_Logs'     
161

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.