Может ли один конвейер сборки отправить значение в качестве параметра следующему конвейеру, который он запускает в DevOps Azure - PullRequest
0 голосов
/ 10 июля 2019

У меня есть конвейер сборки, скажем, A - который хранит файл (этот файл имеет значение переменной, установленное в этом конвейере сборки) в папке.Этот конвейер A запускает другой конвейер B, который публикует папку как артефакт с помощью задачи публикации артефакта.Но имя папки является динамическим, поскольку оно извлекается из этого файла в конвейере A. Мне нужно передать файл со значением этой переменной из конвейера A в конвейер B при его запуске.Есть ли способ сделать это в Azure DevOps, без использования конвейеров yaml?

У меня есть несколько сложных наборов конвейеров, которые я настроил в классическом режиме, и преобразование их всех в yaml заняло бы много времени, поэтому я хотел бы знать, есть ли какой-нибудь способ обойти это.

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Есть несколько обходных путей:

  1. Создайте группу переменных, и во время конвейера A задайте там значение переменной с помощью Rest API , затем в конвейере B используйте эту переменную.

  2. Во время конвейера A обновите определение конвейера B новым значением с помощью Rest API .

  3. В конвейере A запускает конвейер B с помощью Trigger Build Task , где вы можете передать значение переменной в конвейер B (вы делаете это в поле «Build Parameters»).

0 голосов
/ 10 июля 2019

Я не думаю, что есть чистый способ сделать это, если вам нужно запустить сборку, добавив Конвейер A под секцией триггеров Конвейера B.

Рассмотрите возможность запуска Конвейера B, когда Конвейер A завершит использованиеREST API.Таким образом, вы можете иметь свой «путь к файлу» в качестве переменной на конвейере B и передать его в коллекцию parameters.

Что-то вроде:

POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?ignoreWarnings={ignoreWarnings}&checkInTicket={checkInTicket}&sourceBuildId={sourceBuildId}&api-version=5.0

{
    "definition": {
        "id": 1234
    },
    "parameters": "{\"fileName\":\"yourfilename\"}"
}
  • filePath будетбыть именем вашей переменной в конвейере B

Для получения дополнительной информации посмотрите документацию Builds - Queue .

...