2016-08-09 5 views
1

Мы используем Go CD для наших конвейеров CI. Мы создали несколько пользователей Go CD, и все они имеют доступ к запуску любого конвейера в Go CD.Go CD Trigger Пользователь всегда получает значение «изменений» в многоэтапных трубопроводах

Мы используем несколько конвейеров для завершения цикла dev-to-prod, однако мы заметили, что мы можем достичь того же путем использования одного конвейера с несколькими этапами (сохранение дискового пространства, вызванного несколькими конвейерами), каждый из которых представляет собой развертывание окружающей среды (то есть оленя, prod).

Наше требование состоит в том, чтобы получить GO_TRIGGER_USER, настроенный системой Go CD, и на основе этой информации выполните некоторые решения в пользовательском скрипте. Он отлично работает для одноэтапных сборок, т. Е. Если изменения переносятся в репозиторий, запускающий конвейеры, переменная окружения GO_TRIGGER_USER получает значение «изменений», в противном случае оно устанавливается на имя пользователя пользователя Go CD, который вручную запускает конвейер.

Проблема возникает при многоэтажных сборках; начиная с 2-го этапа в конвейере, который всегда получает значение GO_TRIGGER_USER для «изменений», даже если конвейер запускается вручную пользователем Go CD.

Любая идея или обходной путь, чтобы избежать такого поведения?

ответ

0

два варианта:

  1. Использование в API для извлечения данных о первом этапе в трубопроводе Stages API. Я использую это из Python, и это не слишком обременительно.
  2. Напишите метаданные, которые вы хотите разместить в плоском файле, и экспортируйте их как артефакт между этапами.