Недавно я реализовал подход, который использует поддержку WebHok CodeBuild GitHub для запуска начальных модульных тестов и сборки, а затем публикует исходный репозиторий и встроенные артефакты в виде архивированного архива на S3.
Затем можно использоватьАрхив S3 в качестве источника в CodePipeline, где вы можете затем передавать свои артефакты и код PR через интеграционное тестирование, промежуточные развертывания и т. Д. *
Это довольно мощный шаблон, хотя одна из ловушек здесь заключается в том, что если у вас естьпри большом количестве запросов извлечения, создаваемых за один раз, вы можете получить замену выполнений CodePipeline, если только одно выполнение может проходить через данный этап за раз (это на самом деле очень важное свойство, особенно если ваши интеграционные тесты работают с общими ресурсами)и вы не хотите, чтобы несколько экземпляров вашего приложения выполняли задачи настройки / удаления данных одновременно).Чтобы преодолеть это, я публикую уведомление S3 в очереди SQS FIFO, когда CodeBuild публикует артефакт S3, а затем опрашиваю очередь, копируя каждый артефакт в другое местоположение S3, которое вызывает CodePipeline, но только в том случае, если в настоящее время нет выполнений, ожидающихвыполнить после первого этапа CodePipeline.