Как запросить ввод данных пользователем, только когда ветка соответствует мастеру в конвейере Jenkinsfile? - PullRequest
0 голосов
/ 18 октября 2018

Я попытался использовать следующий Jenkinsfile, чтобы запросить ввод только в основной ветке, и не могу получить проверку проходного грамматического кода:

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]

Я много искал, но не нашел ни одного примера использования input step в Jenkinsfile с parameters.

Может кто-нибудь пролить свет на это?Заранее спасибо!

1 Ответ

0 голосов
/ 19 октября 2018

Наконец, найдем способ сделать это, мы должны заключить ввод в ключевое слово 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}"
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...