Строили ли вы конвейер (pipeline) на Jenkins
Что проверяют
Спрашивают тестировщика, а проверяют границу между «умею нажать кнопку в интерфейсе» и «понимаю, как устроен прогон». Интересует, лежит ли конвейер в репозитории кодом, как вы разбираетесь с падениями, которые видно только на агенте, и что делаете с нестабильными тестами: именно они обычно и убивают доверие к сборке.
Как отвечать
Опишите конвейер стадиями и скажите, что он декларативный и лежит в репозитории рядом с тестами, поэтому меняется вместе с ними через ревью, а не правкой задания в интерфейсе.
pipeline {
agent { label 'linux' }
stages {
stage('Build') { steps { sh './gradlew assemble' } }
stage('Tests') {
parallel {
stage('unit') { steps { sh './gradlew test' } }
stage('api') { steps { sh './gradlew apiTest' } }
}
}
}
post {
always { junit '**/build/test-results/**/*.xml' }
}
}Обратите внимание на блок post: отчёт публикуется всегда, иначе при падении тестов шаг не выполнится и разбирать будет нечего. Дальше про запуск: хук из репозитория на ветку и на запрос слияния, ночной полный прогон, ручной с параметрами для нужного стенда. Про доступы скажите, что токены берутся из хранилища учётных данных и приходят переменной окружения, а не лежат в тексте конвейера.
Отдельно назовите, что делаете с нестабильными тестами: карантин отдельным тегом, разбор по журналу и артефактам, перезапуск только целиком, а не до первого зелёного.
Где спотыкаются
Говорят «настроил задание» и не могут объяснить, что происходит на агенте. Конвейер собирается в чужом окружении: другой часовой пояс, нет браузера нужной сборки, нет доступа к стенду, и половина разбора падений это именно про разницу между машиной разработчика и агентом.
Прячут падения перезапуском. Обёртка retry вокруг всего прогона превращает нестабильный тест в невидимый, а через месяц команда перестаёт смотреть на красный цвет вовсе.
Приносят цифры об ускорении релизов, которых не считали. Проверить их нельзя, зато легко проваливается уточняющий вопрос: что мерили до, чем мерили и что именно в конвейере дало выигрыш.