У меня микросервисная архитектура с десятками репозиториев. Развернут на AWS. У меня есть три среды в разных регионах: dev, staging, prod. Код размещен на VSTS / Azure Devops.
Я вынужден использовать VSTS для размещения кода и AWS CodePipeline для развертывания.
На данный момент у меня есть эта двойная настройка CI. Я запускаю модульные тесты в Azure DevOps, который запускает AWS Code Pipeline, который будет развертывать архитектуру через Cloudformation.
Теперь я хочу запускать модульные тесты и сквозные тесты из Pull Request для каждой среды.
Мне нужно выполнить развертывание для выполнения сквозных тестов, но я не уверен, что произойдет, если тесты не пройдут с уже развернутой нерабочей архитектурой.
Репозитории могут быть связаны, и Я хочу иметь возможность запускать несколько CI и откатывать их.
Лучшее решение:
1.
- Сохранять модульные тесты в VSTS
- Развертывание конвейера кода триггера
- Подождите, пока все конвейеры кода будут выполнены и успешно
- Запуск от конца до конца из VSTS
2.
- Запуск CodePipeline из VSTS
- Запуск модульных тестов в CodePipeline
- Развертывание новой архитектуры
- Подождите, пока все развертывания будут выполнены и успешно
- Выполнить e2e te sts из CodePipeline
- Подождите, пока весь код ie будет готов и успешно, и отправьте ответ в VSTS, чтобы сделать CI в порядке.
Спасибо за вашу помощь.