Условное имя конвейеров Azure devops - PullRequest
0 голосов
/ 16 января 2019

Я использую конвейеры Azure-Devops, но у меня возникают проблемы с установкой имени сборки.

Вот обычное определение сборки.

pool:
  vmImage: 'VS2017-Win2016'

name: myBuildName

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

Что я хотел бы сделать, это установить имя с условной проверкой. Если (что-то), то X иначе Y

Я проверил условные документы, но не повезло.

Вот что я хотел бы сделать, но, очевидно, не работает

# if ReleaseNumber var exists
if ($(ReleaseNumber))
  name: $(ReleaseNumber).$(Build.BuildId)
else
  name: $(date:yyyyMMdd)$(rev:.r)

1 Ответ

0 голосов
/ 16 января 2019

Azure DevOps YAML не поддерживает условия в значениях, которые вы пытались сделать.

Условные документы, которые вы просматривали, предназначены для выполнения заданий / заданий, вы можете указать, когда задание будет выполнено с пользовательским условием.

В качестве обходного пути вы можете добавить задачу PowerShell, которая обновит имя сборки в соответствии с вашими условиями.

Например, сохраните $(date:yyyyMMdd)$(rev:.r) в имени и запустите этот скрипт во время сборки:

if ($env:ReleaseNumber){
  Write-Host "##vso[build.updatebuildnumber]$env:ReleaseNumber.$env:Build_BuildId"
  }
else{
  Write-Host "Release Number not exist, build name not changed"
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...