Как определить значение тега Git в DevOps Azure? - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь выяснить, как получить значение tag, когда какой-то код помечен в GitHub. (например, -> GitHub repo -> Releases -> Создать новую версию).

Например, я пытаюсь установить Build Version на основе значения тега Git.

steps:

- script: ##vso[area.action Build.BuildNumber=value;]Build.BuildNumber
  displayName: 'Setting the build number based on a Tag or not.'
  condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))

Итак, в вышесказанном step Я пытаюсь сказать:

  • учитывая, что метка была нажата
  • получить значение табуляции (например, v1.2.3)
  • установить для переменной окружения Build.BuildNumber значение этого тега.

Так что теперь все остальные шаги могут получить доступ к Build.BuildNumber, который будет v1.2.3.

1 Ответ

1 голос
/ 07 марта 2019

Насколько я знаю, вы не можете перезаписать встроенные переменные в процессе сборки.Однако вы можете просто обойти это, определив переменную самостоятельно.

Я настроил это следующим образом:

Установите переменную в определении сборки, поэтому по умолчанию я использую build.buildnumber enter image description here

И добавил этот шаг:

- powershell: |
   $ver = $env:BUILD_SOURCEBRANCH.remove(0, 10)
   Write-Host "##vso[task.setvariable variable=Version]$ver"
  displayName: 'Update version to Tag'
  condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))

С этого момента вы можете ссылаться на переменную 'Version' всякий раз, когда вам нужна версия сборки.

...