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

setup-maestro-vars.yml « post-build « templates « common « eng - github.com/dotnet/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4a22b2e6f6de79a906e027716bb7fe12b477ca01 (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
parameters:
  BARBuildId: ''
  PromoteToChannelIds: ''

jobs:
- job: setupMaestroVars
  displayName: Setup Maestro Vars
  variables:
    - template: common-variables.yml
  pool:
    vmImage: 'windows-2019'
  steps:
    - checkout: none

    - ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}:
      - task: DownloadBuildArtifacts@0
        displayName: Download Release Configs
        inputs:
          buildType: current
          artifactName: ReleaseConfigs
          checkDownloadedFiles: true

    - task: PowerShell@2
      name: setReleaseVars
      displayName: Set Release Configs Vars
      inputs:
        targetType: inline
        script: |
          try {
            if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') {
              $Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt

              $BarId = $Content | Select -Index 0
              $Channels = $Content | Select -Index 1             
              $IsStableBuild = $Content | Select -Index 2

              $AzureDevOpsProject = $Env:System_TeamProject
              $AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId
              $AzureDevOpsBuildId = $Env:Build_BuildId
            }
            else {
              $buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}"

              $apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]'
              $apiHeaders.Add('Accept', 'application/json')
              $apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}")

              $buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
             
              $BarId = $Env:BARBuildId
              $Channels = $Env:PromoteToMaestroChannels -split ","
              $Channels = $Channels -join "]["
              $Channels = "[$Channels]"

              $IsStableBuild = $buildInfo.stable
              $AzureDevOpsProject = $buildInfo.azureDevOpsProject
              $AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId
              $AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId
            }

            Write-Host "##vso[task.setvariable variable=BARBuildId;isOutput=true]$BarId"
            Write-Host "##vso[task.setvariable variable=TargetChannels;isOutput=true]$Channels"
            Write-Host "##vso[task.setvariable variable=IsStableBuild;isOutput=true]$IsStableBuild"

            Write-Host "##vso[task.setvariable variable=AzDOProjectName;isOutput=true]$AzureDevOpsProject"
            Write-Host "##vso[task.setvariable variable=AzDOPipelineId;isOutput=true]$AzureDevOpsBuildDefinitionId"
            Write-Host "##vso[task.setvariable variable=AzDOBuildId;isOutput=true]$AzureDevOpsBuildId"
          }
          catch {
            Write-Host $_
            Write-Host $_.Exception
            Write-Host $_.ScriptStackTrace
            exit 1
          }
      env:
        MAESTRO_API_TOKEN: $(MaestroApiAccessToken)
        BARBuildId: ${{ parameters.BARBuildId }}
        PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }}