У моей команды есть несколько конвейеров Concourse, и по мере рефакторинга задач мы осознали необходимость тестирования наших реальных конвейеров.

Мы уже тестируем наши задачи, используя переменные среды, позволяющие запускать сценарии задач локально, но конвейерный yaml - другое дело.

Как лучше всего провести тестирование самого конвейера?

3
E. Beer 24 Июл 2017 в 22:01
Какие именно тесты вы хотите провести?
 – 
Andrew Edstrom
27 Июл 2017 в 00:59
Мне интересно, как я могу узнать, прежде чем весь мой конвейер станет красным, что кто-то сделал что-то вроде неправильной настройки блокировки пула ресурсов или, например, ресурса выпуска git. В производственном коде наши тесты сообщают нам об этом, поэтому я говорю, что ищу, как протестировать сам конвейер.
 – 
E. Beer
27 Июл 2017 в 19:43

2 ответа

Вы можете использовать Concourse Pipeline Resource, чтобы отслеживать репозиторий git, в котором вы храните конфигурацию конвейера. . Каждый раз, когда ресурс конвейера обнаруживает изменение, он автоматически запускает fly set-pipeline для обновления конфигурации в вашей запущенной установке Concourse. Оттуда легко создать сценарий тестов для обновленного конвейера, который теперь работает в вашей установке Concourse.

0
Andrew Edstrom 27 Июл 2017 в 01:34

fly validate-pipeline очень полезен, запуск его против конвейеров перед слиянием обнаружил несколько ошибок в "очевидно правильных" изменениях для меня.

Если вы хотите протестировать весь конвейер перед слиянием, вам необходимо убедиться, что данные, которые он использует, статичны и работают (нет смысла отказывать конвейеру, если это репо, которое сломано), и что нет побочных эффектов (например, уведомлений) разделяется между «реальным конвейером» и «тестовым конвейером». Я подозреваю, что, если вы будете осторожны с ограничениями, вы сможете заставить его работать, но это должно быть спроектировано в контексте ваших существующих конвейеров и инфраструктуры.

0
Henry Finucane 31 Июл 2017 в 02:53