Я использую Azure DevOps для построения конвейера, но я использую sh, чтобы изменить имя сборки. Это вполне возможно в соответствии с документацией .
Имея это в виду, я протестировал следующее, которое сработало. Пока все хорошо ...
name: '1.0.$(Rev:r)-$(Build.SourceBranchName)'
1.0.1-master
Однако, одно из моих требований - исключить имя ветви, если оно 'master' Я попробовал следующее. Похоже, это сработало в первую очередь, поскольку к «master» не добавлялось имя ветви, но когда я запустил ветку функции, я обнаружил, что $(Build.SourceBranchName)
не расширяется.
variables:
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
branchName: ''
${{ if ne(variables['Build.SourceBranchName'], 'master') }}:
branchName: '-$(Build.SourceBranchName)'
name: '1.0.$(Rev:r)$(branchName)'
I С тех пор пробовал ${{ variables.Build.SourceBranchName }}
и $[variables.Build.SourceBranchName]
, как описано в документации , но при написании они токен либо игнорируется, либо возвращает пустую строку. Три формата оставляют меня со следующими именами сборки:
1.0.1 - $ (Build.SourceBranchName)
1.0.1-
1.0.1 - $ [variable.Build. SourceBranchName]
В документации о пользовательских именах упоминается переменная $(SourceBranchName)
, но я пробовал это, и она также не работает.
Что я сбивает с толку то, что выражения в сегменте variables:
могут обращаться к значениям переменных , как описано здесь , но, по-видимому, сам сегмент variables:
не может.
Возможно ли условно назовите сборку, чтобы я мог включать / исключать имя ветви по мере необходимости?