10

I'm trying to inject a useful version number into my ASP Core application which I'm building and deploying using an Azure DevOps pipeline.

- script: dotnet publish -c $(buildConfiguration) -p:Version=2022.06.21 -p:SourceRevisionId=$(Build.SourceVersion)

But I cannot for the life of me work out how to get the date into a variable where I can actually use it. Which is pretty remarkable really since the current date (with some other fluff appended) is what DevOps itself uses for the default build number.

The documentation is horrendous. How do I do this?

Neutrino
  • 8,496
  • 4
  • 57
  • 83
  • 1
    There is no predefined variable containing the current date, but you can add a custom script to get the current date (i.e. with PowerShell), and write it to an own variable, see the [docs](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-variables-in-scripts) for more detail – JSON Derulo Jun 21 '22 at 11:12

1 Answers1

15

With the format expression you can transform the pipeline.startTime into a formatted date. In your case, define the variable like the following:

variables:
  currentDate: $[ format('{0:yyyy}.{0:MM}.{0:dd}', pipeline.startTime) ]

Then use the variable like the following:

- script: dotnet publish -c $(buildConfiguration) -p:Version=$(currentDate) -p:SourceRevisionId=$(Build.SourceVersion)
JSON Derulo
  • 9,780
  • 7
  • 39
  • 56
  • This sorted me out, although I found the syntax in your answer resulted in a format error, the following expression though did work. currentDate: $[format('{0:yyyy}.{0:MM}.{0:dd}', pipeline.startTime)] – Neutrino Jun 21 '22 at 13:11
  • @Neutrino thanks for sorting this out, I did not test this. Will update the answer. – JSON Derulo Jun 21 '22 at 14:25
  • 1
    Note that this doesn't appear to be the actual pipeline start time, but when the agent started. Meaning it will give you different results per job. https://developercommunity.visualstudio.com/t/pipelinestarttime-is-not-consistent-in-a-pipeline/1558186 – Dillydill123 May 01 '23 at 14:39