#jenkins #jenkins-pipeline #jenkins-groovy
#дженкинс #дженкинс-конвейер #дженкинс-groovy
Вопрос:
У меня есть сценарий groovy для некоторых тестов параллельно, но я не могу перезапустить этапы Installation1 / Installation2 вручную из пользовательского интерфейса jenkins. Есть ли какой-либо другой способ сделать это, чтобы я мог перезапустить определенный этап?
pipeline {
agent {label ''}
stages {
stage('Check workspace') {
steps {
}
}
stage('Installation') {
parallel{
stage('Installation 1')
{
agent {label ''}
steps {
}
}
}
stage('Installation 2')
{
agent {label ''}
steps {
}
}
}
}
}
stage('Test') {
parallel{
stage(' Tests 1'){
agent {label ''}
steps {
}
}
stage(' Tests 2'){
agent {label ''}
steps {
}
}
}
}
stage('Report') {
steps {
}
}
}
}
Комментарии:
1. Рассмотрите возможность использования «параметров», смешанных с условными обозначениями («когда») на этапах
Ответ №1:
Вы можете определить этапы installation1 и installation2 как функции в вашем файле Jenkins и вызывать их при сбое теста. Эти функции можно использовать как на этапе установки, так и для повторной установки при сбое тестов.
def installation1() {
stage('Installation 1')
{
agent {label ''}
steps {
}
}
}
def installation2() {
stage('Installation 2')
{
agent {label ''}
steps {
}
}
}
На параллельном шаге вы можете вызывать функции, как показано ниже. Используйте try-catch для вызова функций установки при сбое тестов.
stage('Test') {
try {
"TEST YOUR INSTALLATION"
} catch(error) {
echo "First test failed, let's retry installation if accepted"
retry(2) {
input "Retry the installation ?"
parallel{
installation1(),
installation2()
}
}
}
}
Этот код не тестируется. Надеюсь, это поможет 🙂