12
votes

I've defined a variable in my TFS/AzureDevops Build definition (say it's time) and assign the value using PowerShell task within my build definition.

Like,

Type: Inline Script.

Inline script:

$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"

You can refer to this similar example

Now I want to get this value in my release definition pipeline. I configured this build definition as continuous deployment to my release definition.

My Question is

How can I get the value of time in my release definition using some other variable? Is this possible?

1
What's with the downvotes without comments? He tried all that's reasonable to try!jessehouwing
If you need to get the build's date, why not retrieve the linked build with the REST API and retrieve the date from that?Daniel Mann

1 Answers

13
votes

The is no official way to pass variables from Build to Release. The only way to accomplish this is to store the values in a file (json, xml, yaml, what have you) and attach that as a Build Artifact. That way you can read the file in the release and set the variable again.

Martin Hinshelwood seems to have gotten frustrated enough by this problem and turned that functionality into an extension for Azure DevOps Pipelines.

Tasks included

  • Variable Save Task - During your build you can save the variables to a json file stored with your other build assets
  • Variable Load Task - During your Release you can load the saved variables and gain access to them.