У меня есть следующие шаги в моем Jenkinsfile
stages {
stage('Start & Run Tests') {
parallel {
stage('Start Server Tests') {
steps {
script {
catchError(buildResult: 'UNSTABLE', stageResult: 'UNSTABLE') {
groovyFile.startServer()
}
}
}
}
stage('Execute Tests') {
steps {
script {
catchError(buildResult: 'UNSTABLE', stageResult: 'UNSTABLE') {
groovyFile.executeTests()
}
}
}
}
}
}
}
post {
always {
script {
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
groovyFile.stopServer()
}
}
}
}
groovyFile.startServer () и groovyFile.executeTests () выполняют инструкцию maven из моего проекта.
startServer вызывает командный файл, который запускает что-то похожее на «java mypackge.MyServer start»
executeTests выполняет интеграционные тесты с использованием запущенного сервера.
Моя проблема в : после завершения тестов сервер все еще работает, а Дженкинс продолжает висеть, пока я вручную не убью сервер. Я хочу, чтобы после завершения тестов скрипт перешел в «отправку», а скрипт остановил сервер.
Я уже пытался добавить "start / b" к пакетному файлу, который запускает сервер, но безуспешно.
Конвейер работает на Jenkins Slave с использованием javaagent на ноутбуке Windows.
Есть ли способ сказать Дженкинсу: «Не дожидайтесь этапа« Запуск тестов сервера »до завершения sh, просто переходите к следующему этапу за пределами« Запуск и выполнение тестов »»?
Вы видите, что я запускаю этапы параллельно, но этого было недостаточно, чтобы перейти к следующему этапу и остановиться