groovy.lang.MissingPropertyException - Чтение ввода - Jenkinsfile - PullRequest
0 голосов
/ 26 марта 2019

Ниже приведен фрагмент кода Jenkinsfile (сценарий конвейера) для выбора репозитория Git в режиме просмотра:

            userInput = input(id: 'userInput',    
                                message: 'Do you want to build?',    
                                parameters: [
                                                [$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
                                            ]  
                            )


            if (userInput.Env == "repo_1") {
                print 'selected repo_1'
            }

просит пользователя выбрать репозиторий и нажать Proceed

При нажатии на кнопку Proceed выдает ошибку jenkins:

groovy.lang.MissingPropertyException: No such property: Env for class: java.lang.String

Ручная сборка разрешена только для repo_1

Остальные репозитории предполагают автоматическое срабатывание

Edit:

После внесения следующих изменений,

node('worker_node'){

    def userIdCause = currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause')
    def manualBuild =  userIdCause.size()

    stage("Auth-build") {

            timeout(2) {
                if (manualBuild) {

                    userInput = input(id: 'userInput',    
                                    message: 'Please select the repository',    
                                    parameters: [
                                                    [$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
                                                ]  
                                )

                    if (userInput == "None") {

                        error('Error output')
                    }
                    repositoryName = 'repo_1'
                }else if( !manualBuild && (repositoryName == 'repo_1')){

                    error('error output')
                }
            }
        }
}

Я не получаю пользовательский интерфейс после нажатия BuildNow, мне пришлось выполнить следующий процесс:

enter image description here


1) Почему userInput.Env выдает ошибку исключения отсутствующего свойства?

2) input() api требуется минута для визуализации мастера ввода. Можем ли мы оптимизировать?

1 Ответ

1 голос
/ 26 марта 2019
  1. No such property: Env for class: String - я считаю, что функция input уже возвращает значение одного входа.
  2. Определение input довольно просто в вашем случае и не содержит никакого кода (только константы) - ничего оптимизировать в нем.Ищите время потребителей в других местах.
...