Как запустить этап «ввода» только на главном в декларативном конвейере Jenkins? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть этап в декларативном конвейере Jenkins, который я хочу запустить условно при запуске вручную, и только в ветви master.

stage('Deploy to prod') {
  when {
    branch 'master'
  }
  input {
    message "Deploy to prod?"
    ok "Deploy"
  }
  agent any
  steps {
    ..
  }
}

Я бы хотел, чтобы этот этап был пропущен в целом дляветви, отличные от master, но на практике происходит то, что они приостанавливаются для всех ветвей.Есть ли способ получить поведение, за которым я следую?

1 Ответ

0 голосов
/ 31 мая 2018

В соответствии с декларативным документом для конвейера для input

Этап будет приостановлен после применения любых параметров, а также перед вводом агента этапа или оценкой его условия условия,

Чтобы конвейер работал так, как вы указали, я бы преобразовал input в (не декларативный стиль) шаг, подобный следующему:

stage('Deploy to prod') {
  when {
    branch 'master'
  }
  agent any
  steps {
    input message: "Deploy to prod?", ok: "Deploy"
    ..
  }
}
...