Создание артефактов из переменных среды в GO CD

Используя систему шаблонов в GO, мне нужно создавать артефакты из переменного количества переменных среды, определенных в конвейере.

Объяснение

У меня есть шаблон для сборки и развертывания репозиториев. Мне нужно создать некоторые артефакты в шаблоне для использования в другом конвейере с механизмом извлечения артефактов http://www.go.cd/documentation/user/current/configuration/managing_dependencies.html#fetching-artifacts-from-an-upstream-pipeline.

Но репозитории могут генерировать переменное количество пакетов в разных местах дерева репозиториев.


Есть ли способ генерировать артефакты в шаблоне на основе переменных среды, определенных в конвейере?


person Ezequiel    schedule 15.07.2015    source источник


Ответы (1)


Есть ли способ генерировать артефакты в шаблоне на основе переменных среды, определенных в конвейере?

Для фиксированного количества артефактов да. Вы можете передать координаты артефактов в шаблон в качестве параметров (не среды!) и использовать параметры в шаблоне. XML-каракули:

<pipeline name="foo" template="templatename" ...>
  <params>
    <param name="upstream-pipeline">my-pipeline</param>
    <param name="upstream-stage">my-stage</param>
    <param name="upstream-job">my-job</param>
    <param name="upstream-artifacto-directory">my-directory</param>
  </params>
  ...
</pipeline>

затем шаблон сделает что-то подобное

<tasks>
  <fetchartifact artifactOrigin="gocd" srcdir="#{upstream-artifact-directory}" pipeline="#{upstream-pipeline}" stage="#{upstream-stage}" job="#{upstream-job}">
  ...

В определенной степени обычный интерфейс мастера шаблонов не позволяет создавать шаблоны с переменными. Мне пришлось переключиться на непосредственное редактирование config.xml.

Я рекомендую начать с работающего конвейера, а затем преобразовать его в шаблон, чтобы сократить количество проб и ошибок XML.

person s.fuhrm    schedule 27.02.2020