AzureDevOp передает информацию от одного этапа к другому, используя сценарии - PullRequest
0 голосов
/ 11 октября 2019

Pipeline

У меня есть конвейер, определенный из двух шагов:

  • один строит комбинированную диаграмму рулевого управления из двух отдельных артефактов
  • два развертывания этой диаграммы в кластер

Оба этапа сначала загружают секрет, а затем запускают скрипт bash для выполнения работы, как показано на следующем рисунке.

Steps Моя задача сейчас состоит в том, чтобы отправить имя рулевой диаграммы и ее версию со стадии сборки на стадию развертывания. Чтобы шаг 2 мог получить правильную диаграмму.

Как мне этого добиться?


Пробная версия 1: Использование ##vso[task.setvariable - Не работает из сценария

echo "##vso[task.setvariable variable=HELM_CHART_NAME]$HELM_CHART_NAME"
echo "##vso[task.setvariable variable=HELM_CHART_VERSION]$HELM_CHART_VERSION"

1 Ответ

0 голосов
/ 11 октября 2019

Использование ## vso [task.setvariable - Не работает из сценария

Это вызвано различными этапами использования разных агентов, и динамическая переменная, установленная ##vso[task.setvariable, имеет вид агент один. Его жизненный цикл совпадает с агентом, поэтому он исчезнет после завершения одного задания агента.

Для решения, которое может помочь вам пройти переменную перехода от этапа сборки к этапу развертывания, лучше хранить эти переменные в одном хранилище. ,Например, сохранить его в хранилище ключей Azure с помощью задачи Действия хранилища ключей Azure или Запись секретов в хранилище ключей .

Другим способом является использование rest api чтобы добавить его в качестве переменной выпуска с помощью сценария powershell:

PUT https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}?api-version=5.0

Затем на следующем этапе он может получить доступ и получить переменную из переменных выпуска.

...