То, что у нас уже есть (и работает)
Два разных конвейера:
Мы извлекаем наш внутренний код SpringBoot из репозитория CodeCommit, выполняем mvn clean compile test
и в случае успеха развертывание в среде Elasti c Beanstalk dev
(которая использует конфигурацию Tomcat / Java8).
У нас есть еще один репозиторий на CodeCommit, содержащий коллекцию PostMan, которая будет под управлением NewMan для интеграционных тестов. Его URL-адреса указывают на конечные точки dev
. CodePipeline также используется для извлечения исходного кода, а затем для установки и запуска NewMan с помощью команд оболочки на этапе сборки. Файл buildspec.yml
, используемый CodeBuild, настроен с nodejs: 10
в качестве runtime-versions
. Однако этот конвейер необходимо запустить вручную, чтобы протестировать приложение.
Чего нам не хватает
Теперь мы хотим понять, как можно было бы:
- вызывает нашу "IntegrationTestsPipeline" после успешного развертывания в среде
dev
- развертывание (после успешного завершения всех интеграционных тестов) в среде
prod
приложения, которое сейчас включено dev
среда
У нас возникают проблемы с пониманием того, как два конвейера могут сообщать лайксы (или как объединить оба в один конвейер: еще лучше).
Точность
Я не тот человек, который изначально настроил всю инфраструктуру на AWS.
Каким-то образом, несмотря на то, что наше приложение развертывается в Beanstalk, фаза "Развертывание" ссылается на CloudFormation в качестве своего провайдера. На этом этапе перечислены два действия: GenerateChangeSet
и ExecuteChangeSet
. Я не уверен, что понимаю, почему это так (и как это точно работает): я бы подумал, что просто использовать Beanstalk в качестве поставщика для фазы развертывания было бы проще.