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

时间:2018-10-18 05:46:14

标签: jenkins-pipeline

我试图使用以下Jenkinsfile来仅在master分支上请求输入,但无法获得常规的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一起使用的示例。

有人能对此有所启发吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

最后找到一种方法,我们应该用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}"
            }
        }
    }