У меня есть шаблон, по которому я хочу оценить coalesce(${{ parameters.pipeline }}, $(System.DefinitionId))
.
Насколько мне известно, это правильный синтаксис:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: '$(System.TeamProjectId)'
pipeline: $[ coalesce(${{ parameters.pipeline }}, $(System.DefinitionId)) ]
buildVersionToDownload: latestFromBranch
branchName: $[ coalesce(${{ parameters.branchName }}, $(Build.SourceBranch)) ]
allowPartiallySucceededBuilds: true
downloadType: 'single'
downloadPath: '$(Pipeline.Workspace)'
artifactName: ${{ parameters.artifact }}
Однако когда я запускаю это, я получаю эту ошибку:
Имя определения $ [coalesce (141, 342)] не соответствует допустимому определению.
Я думаю, что это, вероятно, означает, что выражение не оценивается и не используется буквальная строка '$[ coalesce(141, 342) ]'
.
Кажется, что Build.DefinitionId
доступен только во время выполнения, иначе я бы установил параметр по умолчанию на ${{ Build.DefinitionId }}
и просто установил pipeline: ${{ parameters.pipeline }}
.
Я пробовал дюжину различных вариантов, использующих синтаксисы $[ ]
, ${{ }}
и $( )
как внутри, так и вне coalesce()
. Ни один из них не работает, но этот самый близкий, поскольку он фактически заменяет переменные правильно.
Любые идеи?