Можно ли использовать параметр в блоке повтора? Я пытаюсь параметризовать количество повторных попыток на этапе репликации, создавая переменную env, которая является int, и передавая ее в повторную попытку следующим образом: . Я включил конвейер ниже.
pipeline {
agent any
parameters {
string(name: 'NUMBER_OF_TRY_ATTEMPTS', defaultValue: '3', trim: true)
}
stages {
stage('Initialize') {
steps {
script {
env.tryCount = 0
env.numberOfTryAttempts = Integer.valueOf(NUMBER_OF_TRY_ATTEMPTS)
}
}
}
stage('Replicate') {
options {
retry(env.numberOfTryAttempts)
}
steps {
script {
tryCount = env.tryCount as Integer
tryCount++
env.tryCount = "${tryCount}"
echo "Replicate try number: ${tryCount}"
error("Replicate Failed...")
}
}
}
}
post {
failure {
echo "Replicate Failed after ${tryCount} attempts"
}
success {
echo "Replicate Succeeded after ${tryCount} attempts"
}
}
}
Если вы заключаете параметр в вызов функции, вы можете передать функцию retry
.
Например, если вы определяете
def maxAttempts = Integer.valueOf(NUMBER_OF_TRY_ATTEMPTS)
то вы можете сделать повторный вызов функции
retry(maxAttempts)
получилось, поместив
def maxAttempts = Integer.valueOf(NUMBER_OF_TRY_ATTEMPTS)
над блоком конвейера {}, спасибо @Arlo!