#azure #powershell #azure-devops #yaml #azure-pipelines
Вопрос:
У меня есть проект, использующий несколько репозиториев:
resources:
repositories:
- repository: one
type: git
name: repo/one
ref: release
- repository: two
type: git
name: repo/two
ref: develop
- repository: three
type: git
name: repo/three
ref: master
Как мне получить переменные среды для каждого из этих репозиториев на последующих шагах? Например, меня интересует переменная $(Build.номер здания). Теперь я получаю переменную только для ветви, из которой запускается сам проект yaml.
Ответ №1:
repository
Ключевое слово в resources
позволяет указать внешние репозитории.
При проверке нескольких репозиториев некоторые сведения о собственном репозитории доступны в виде предопределенных переменных
Когда вы используете триггеры с несколькими репо, некоторые из этих переменных вместо этого содержат информацию о репозитории запуска. Подробные сведения обо всех репозиториях, используемых заданием, доступны в виде объекта контекста шаблона под названием ресурсы.репозитории
Чтобы получить переменные среды для каждого из этих репозиториев, вам необходимо определить переменную:
Пример:
resources:
repositories:
- repository: other
type: git
name: MyProject/OtherTools
variables:
tools.ref: $[ resources.repositories['other'].ref ]
steps:
- checkout: self
- checkout: other
- bash: |
echo "Tools version: $(tools.ref)"
Комментарии:
1. Я попробовал этот вариант, и я получаю пустую переменную $TOOLS_REF Также, я не вижу, как получить имя ветви.
2. Вы можете использовать переменные в bash, такие как echo «Версия инструментов: $(tools.ref)»