Как вызвать конвейер на основе успеха другого конвейера с помощью AWS CodeCommit, CodeBuild, CodePipeline - PullRequest
2 голосов
/ 12 июля 2020

Желаемое поведение выглядит следующим образом:

  • Pu sh изменение кода
  • Запуск модульных тестов для каждого бессерверного компонента
  • При условии, что все тесты прошли успешно, развернуть компоненты в промежуточной среде и пометить сборку как успешную
  • Прослушать это изменение и запустить набор приемочных тестов с помощью Gherkin
  • Если все тесты пройдены успешно, разверните компоненты в среде UAT / Prod и отметьте сборка как успешная

Желаемое решение будет иметь два конвейера, второй запускается при успехе первого.

Если у вас есть другие идеи, я был бы рад услышать !

Заранее спасибо

1 Ответ

1 голос
/ 12 июля 2020

Решение, которое я предлагаю для триггера второго конвейера, будет следующим:

  • Иметь источник второго конвейера как S3 (не CodeCommit). Это гарантирует, что этот конвейер запустится только тогда, когда файл с конкретным именем (ключ объекта) будет передан в Amazon S3.
  • В конце первого CodePipeline добавьте функцию Lambda, к этому моменту все должно было быть успешным
  • Пусть эта Lambda скопирует артефакт, который вы создаете для своего первого конвейера, и поместите его в корзину с ключом, указанным во втором источнике сегментов.

Чтобы сохранить чистые вещи используйте отдельное ведро для каждого трубопровода.

...