Welcome to mirror list, hosted at ThFree Co, Russian Federation.

publish-build-assets.yml « job « templates « common « eng - github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1cbb6a0c560038cff5b0cea75096d09ed9d77cb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
parameters:
  configuration: 'Debug'

  # Optional: condition for the job to run
  condition: ''

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

  # Optional: dependencies of the job
  dependsOn: ''

  # Optional: Include PublishBuildArtifacts task
  enablePublishBuildArtifacts: false

  # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
  pool: {}

  # Optional: should run as a public build even in the internal project
  #           if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
  runAsPublic: false

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

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

  artifactsPublishingAdditionalParameters: ''

  signingValidationAdditionalParameters: ''

jobs:
- job: Asset_Registry_Publish

  dependsOn: ${{ parameters.dependsOn }}

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

  pool: ${{ parameters.pool }}

  variables:
  - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
    - group: Publish-Build-Assets
    - group: AzureDevOps-Artifact-Feeds-Pats
    - name: runCodesignValidationInjection
      value: false
    - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
      - template: /eng/common/templates/post-build/common-variables.yml

  steps:
  - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
    - task: DownloadBuildArtifacts@0
      displayName: Download artifact
      inputs:
        artifactName: AssetManifests
        downloadPath: '$(Build.StagingDirectory)/Download'
        checkDownloadedFiles: true
      condition: ${{ parameters.condition }}
      continueOnError: ${{ parameters.continueOnError }}
    
    - task: NuGetAuthenticate@0

    - task: PowerShell@2 
      displayName: Enable cross-org NuGet feed authentication 
      inputs: 
        filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1 
        arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw) 

    - task: PowerShell@2
      displayName: Publish Build Assets
      inputs:
        filePath: eng\common\sdk-task.ps1
        arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
          /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
          /p:BuildAssetRegistryToken=$(MaestroAccessToken)
          /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
          /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
          /p:OfficialBuildId=$(Build.BuildNumber)
      condition: ${{ parameters.condition }}
      continueOnError: ${{ parameters.continueOnError }}
    
    - task: powershell@2
      displayName: Create ReleaseConfigs Artifact
      inputs:
        targetType: inline
        script: |
          Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId)
          Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)"
          Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild)
    
    - task: PublishBuildArtifacts@1
      displayName: Publish ReleaseConfigs Artifact
      inputs:
        PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs.txt'
        PublishLocation: Container
        ArtifactName: ReleaseConfigs

    - task: powershell@2
      displayName: Check if SymbolPublishingExclusionsFile.txt exists
      inputs:
        targetType: inline
        script: |
          $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
          if(Test-Path -Path $symbolExclusionfile)
          {
            Write-Host "SymbolExclusionFile exists"
            Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true"
          }
          else{
           Write-Host "Symbols Exclusion file does not exists"
           Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false"
          }

    - task: PublishBuildArtifacts@1
      displayName: Publish SymbolPublishingExclusionsFile Artifact
      condition: eq(variables['SymbolExclusionFile'], 'true') 
      inputs:
        PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
        PublishLocation: Container
        ArtifactName: ReleaseConfigs

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

      - task: PowerShell@2
        displayName: Publish Using Darc
        inputs:
          filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
          arguments: -BuildId $(BARBuildId) 
            -PublishingInfraVersion 3
            -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
            -MaestroToken '$(MaestroApiAccessToken)'
            -WaitPublishingFinish true
            -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
            -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'

    - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
      - template: /eng/common/templates/steps/publish-logs.yml
        parameters:
          JobLabel: 'Publish_Artifacts_Logs'