Следует рассмотреть возможность установки модульных тестов для вашего конвейера с использованием библиотеки Pipeline Unit Test . Это позволяет вам скомпилировать и смоделировать выполнение сложного конвейера менее чем за 1 секунду. Конечно, вам может понадобиться потратить некоторое время на правильную настройку модульного теста, но это стоит того, чтобы приложить усилия.
Вы можете начать с простого теста, который печатает стек вызовов, например:
import com.lesfurets.jenkins.unit.BasePipelineTest
class TestExampleJob extends BasePipelineTest {
//...
@Test
void should_execute_without_errors() throws Exception {
def script = loadScript("job/exampleJob.jenkins")
script.execute()
printCallStack()
}
}
Если вы не видите ошибок в стеке вызовов, вы можете добавить assertJobStatusSuccess()
, чтобы проверить, не вызвало ли выполнение конвейера изменение состояния сборки. И затем, вы можете начать добавлять такие вещи, как assertCallStackContains(str)
, чтобы начать проверять, присутствовала ли указанная c команда или этап во время выполнения.
Этот модульный тест также должен выявить любые (или, по крайней мере, большинство) проблем компиляции , Есть несколько редких случаев, когда тестирование модуля конвейера проходит успешно, но конвейер, выполняемый на Jenkins, не проходит. Я использую эту библиотеку в течение двух лет в своей общей библиотеке Jenkins, это сэкономило мне сотни часов ручного тестирования и выявления простых ошибок.