Условный шаг ввода в декларативном конвейере - PullRequest
0 голосов
/ 13 октября 2018

с использованием Jenkins v2.138.2 и агрегатора рабочих процессов v2.6, я пытаюсь определить условный шаг input, который зависит от значения параметра задания, следующим образом:

stage('apply') {

  when { expression { params.apply_plan != 'no' } }

  if (params.apply_plan != 'yes') {
    input {
      message 'Apply this plan?'
    }
  }

  steps {
    withAWS(region: 'us-east-1', role: assume_role) {
      dir(path: tf_dir) {
        sh "make apply"
      }
    }
  }
}

Однакоэтот синтаксис if { ( ... ) input { ...} } дает мне ошибку во время выполнения:

java.lang.ClassCastException: org.jenkinsci.plugins.workflow.support.steps.input.InputStep.message ожидает класс java.lang.Строка, но получила класс org.jenkinsci.plugins.workflow.cps.CpsClosure2

Есть идеи, как это сделать?

Спасибо, Крис

1 Ответ

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

Я думаю, что вы используете неправильный синтаксис здесь.input { … } действителен только в качестве директивы (за пределами steps непосредственно под stage).То, что вы хотите использовать, это шаг input, который описан здесь .В основном вам нужно просто удалить фигурные скобки и поместить их в script в steps:

stage("stage") {
    steps {
        script {
            if (params.apply_plan != 'yes') {
                input message: 'Apply this plan?'
            }
        }
        withAWS(region: 'us-east-1', role: assume_role) {
            dir(path: tf_dir) {
                sh "make apply"
            }
         }
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...