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

Мы используем подключаемый модуль блокируемых ресурсов для предотвращения наши рабочие места выполняются одновременно. Я хотел бы разрешить запуск задания и сбор входных параметров с помощью «Шага ввода», затем поставить в очередь, ожидая снятия блокирующих блокировок, а затем продолжить. Вместо этого я вижу, что вся работа блокируется и не позволяет мне вводить данные до тех пор, пока все блокировки не будут сняты, даже если у меня есть шаг ввода за пределами блока Lock.

Что я делаю неправильно?

Вот пример:

// Define an input step and capture the outcome from it.
def outcome = input id: 'deployment',
  message: 'Deployment Configuration',
  ok: 'Deploy',
  parameters: [
    [
      $class     : 'hudson.model.ChoiceParameterDefinition', choices: "development",
      name       : 'stack',
      description: 'select a stack to deploy'
    ],
    [
      $class     : 'hudson.model.ChoiceParameterDefinition', choices: "choice1\nchoice2",
      name       : 'profile',
      description: 'select a profile to deploy'
    ],
  ]

def profile = "${outcome.get('profile')}"
def stack = "${outcome.get('stack')}"

echo "profile: ${profile}"
echo "stack: ${stack}"

// use lockable resource to prevent multiple jobs of the same project from running at the same time.
lock(resource: "deployment") {
    sh "echo running deployment script here."
}

person TreverW    schedule 14.02.2017    source источник


Ответы (1)


После этого сообщения Jenkins Pipeline: этап «input» блокирует исполнителя Мне удалось решить проблему, добавив

stage('deploy') {
}

вокруг моего квартала. Например.

// Define an input step and capture the outcome from it.
def outcome = input id: 'deployment',
  message: 'Deployment Configuration',
  ok: 'Deploy',
  parameters: [
    [
      $class     : 'hudson.model.ChoiceParameterDefinition', choices: "development",
      name       : 'stack',
      description: 'select a stack to deploy'
    ],
    [
      $class     : 'hudson.model.ChoiceParameterDefinition', choices: "choice1\nchoice2",
      name       : 'profile',
      description: 'select a profile to deploy'
    ],
  ]

def profile = "${outcome.get('profile')}"
def stack = "${outcome.get('stack')}"

stage('deploy') {
  echo "profile: ${profile}"
  echo "stack: ${stack}"

  // use lockable resource to prevent multiple jobs of the same project from running at the same time.
  lock(resource: "deployment") {
    sh "echo running deployment script here."
  }
}
person TreverW    schedule 14.02.2017