Jenkins在options指令中参数化重试尝试次数

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)

是否可以在重试块中使用参数?我试图通过创建一个int的env变量并将其传递到retry中来参数化复制阶段的重试次数,如下所示:
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!