У моей команды есть несколько конвейеров Concourse, и по мере рефакторинга задач мы осознали необходимость тестирования наших реальных конвейеров.
Мы уже тестируем наши задачи, используя переменные среды, позволяющие запускать сценарии задач локально, но конвейерный yaml - другое дело.
Как лучше всего провести тестирование самого конвейера?
2 ответа
Вы можете использовать Concourse Pipeline Resource, чтобы отслеживать репозиторий git, в котором вы храните конфигурацию конвейера. . Каждый раз, когда ресурс конвейера обнаруживает изменение, он автоматически запускает fly set-pipeline
для обновления конфигурации в вашей запущенной установке Concourse. Оттуда легко создать сценарий тестов для обновленного конвейера, который теперь работает в вашей установке Concourse.
fly validate-pipeline
очень полезен, запуск его против конвейеров перед слиянием обнаружил несколько ошибок в "очевидно правильных" изменениях для меня.
Если вы хотите протестировать весь конвейер перед слиянием, вам необходимо убедиться, что данные, которые он использует, статичны и работают (нет смысла отказывать конвейеру, если это репо, которое сломано), и что нет побочных эффектов (например, уведомлений) разделяется между «реальным конвейером» и «тестовым конвейером». Я подозреваю, что, если вы будете осторожны с ограничениями, вы сможете заставить его работать, но это должно быть спроектировано в контексте ваших существующих конвейеров и инфраструктуры.
Похожие вопросы
Новые вопросы
concourse
По вопросам, связанным с конвейерной системой CI Concourse, написано на Go.