Jenkins在options指令中参数化重试尝试次数
是否可以在重试块中使用参数?我试图通过创建一个int的env变量并将其传递到retry中来参数化复制阶段的重试次数,如下所示:Jenkins在options指令中参数化重试尝试次数,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,是否可以在重试块中使用参数?我试图通过创建一个int的env变量并将其传递到retry中来参数化复制阶段的重试次数,如下所示:retry(env.numberoftryattles)但是重试不起作用,只在标记为失败之前运行作业一次。我已经包括了下面的管道 pipeline { agent any parameters { string(name: 'NUMBER_OF_TRY_ATTEMPTS', defaultValue: '3', trim: true)
retry(env.numberoftryattles)
但是重试不起作用,只在标记为失败之前运行作业一次。我已经包括了下面的管道
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"
}
}
}
如果将参数包装在函数调用中,则可以将函数传递给
重试
。
例如,如果您定义
def maxtures=Integer.valueOf(尝试次数)
然后,您可以使重试调用成为函数
retry(maxtures)
将def maxtures=Integer.valueOf(尝试次数)
放在管道{}块上方,谢谢@Arlo!