如何仅在分支匹配 Jenkinsfile 管道中的 master 时才询问用户输入?



我尝试使用以下 Jenkinsfile 仅在主分支上请求输入,并且无法获得时髦的 grammer pass 验证:

pipeline {
stage('Deploy') {
when {
branch 'master'
}
steps {
input(message: "Please input", parameters: [string(name: "VERSION", defaultValue="", description="")]
}
}
}

错误是:

java.lang.IllegalArgumentException: Expected named arguments but got [{name=VERSION, description=""}, null]

我搜索了很多,但没有找到一个关于在 Jenkinsfile 中使用input步骤的示例parameters

谁能对此有所了解?提前感谢!

最后找到一种方法来做到这一点,我们应该用script关键字包装输入。

stage('Deploy to k8s prod') {
when {
branch 'release-prod'
}
steps {
script {
env.VERSION = input message: '请输入参数', ok: '确定', parameters: [
string(name:'VERSION', description: "版本号")]
}
sh "echo ${env.VERSION}"
}
}
}

最新更新