Можно ли использовать переменную в свойстве ref ресурсов: репозиторий для Azure DevOps YAML?
На этот вопрос ответ Да, возможно.
О том, почему вы получаете это сообщение об ошибке, просто указанная вами переменная ($(Build.SourceBranch)
) неверна.Вы должны использовать $(Build.SourceBranchName)
.
Как обычно, для ссылки мы должны ввести master или любые другие ветви функций.Например,
ref: refs/heads/master
Это может заставить вас подумать, что это то же самое, что и значение $(Build.SourceBranch)
.Это выглядит так же, я знаю, но по-другому.Фактически, для сервера он будет читать именно имя ветви, а не путь ветви, что мы можем четко определить с помощью классического редактора:
В соответствии с классическим типом редактора, мы можем знать, что здесь мы должны ввести точное имя ветви.
Так, как определено Предопределенные переменные , значение $(Build.SourceBranch)
является путем перехода,но для $(Build.SourceBranchName)
оно представляет собой точно название ветви.
Итак, если вы хотите выполнить успешно, вам нужно использовать: $(Build.SourceBranchName)
.И это работает на моей стороне.
Надеюсь, что это также может помочь вам избежать сообщения об ошибке.
Редактировать:
Полный сценарий, которыйу меня работает это:
resources:
repositories:
- repository: templates
type: git
name: MyApp/MyconApp
ref: $(Build.SourceBranchName)