JBoothUA
JBoothUA

Reputation: 3149

How can an Azure DevOps task use the Output of a previous Azure DevOps task

When executing a DevOps Release Pipeline:

While currently executing Task 2, I would like to reference the Output from Task 1. (Task 1 retrieves json from a REST api call.)

They are both in the same Agentless Job (they are both REST api calls). basically i'm trying to "chain" them together and/or pass the json output from Task 1 to Task 2

I have seen documentation on variables, but I am not sure if I can set variables via Task 1's output, or even better if there was something built-in, like ${PreviousStep.Output}

Is this even possible?

Upvotes: 1

Views: 3357

Answers (1)

Vito Liu
Vito Liu

Reputation: 8288

We could create a temporary file in pipeline and save the response body to the file, then read the file in the next power shell.

In my sample, I get release pipeline definition in the first power shell task and save the output to the temporary file, then read it in the next power shell task.

Sample pipeline definition

trigger:
- none

pool:
  vmImage: 'windows-latest'


steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      New-Item $(Build.SourcesDirectory)\test1.txt
      $outfile = "$(Build.SourcesDirectory)\test1.txt"
      Write-Host $outfile
      $url = "https://vsrm.dev.azure.com/{Org name}/{Project name}/_apis/release/definitions/{Definition ID}?api-version=6.0-preview.4"
      Write-Host "URL: $url"
      $connectionToken="{PAT}"
      $base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
      $pipelineInfo = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
      $pipelineInfo | Out-File -FilePath $outfile
      
      

      

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $json = Get-Content -Path $(Build.SourcesDirectory)\test1.txt
      Write-Host $json

Result:

enter image description here

Upvotes: 1

Related Questions