2016-10-08 5 views
3

Я пытаюсь выполнить уже заданное задание, используя build метод с трудом дженкинсов. Это простой пример:Jenkins Pipeline - Построить с параметрами

build('jenkins-test-project-build', param1 : 'some-value') 

Но когда я пытаюсь выполнить его, я получаю сообщение об ошибке:

java.lang.IllegalArgumentException: Expected named arguments but got [{param1=some-value}, jenkins-test-project-build] 
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:442) 
at org.jenkinsci.plugins.workflow.cps.DSL.parseArgs(DSL.java:380) 
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:156) 
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) 
............... 

ответ

5

Вы получаете эту ошибку, потому что вы не передаете имя атрибута который должен хранить «jenkins-test-project-build».

В вашем случае вы должны пройти job атрибут.

build(job: 'jenkins-test-project-build', param1 : 'some-value') 

Вот список доступных опций (pipeline-build-step):

  • работу
  • параметры (опционально)
  • Propagate (опционально)
  • quietPeriod (опционально)
  • ожидания (опционально)
10

У вас есть несколько проблем в вызове сборки.

Сначала, как sshepel упоминалось это вы должны имя ваши параметры если у вас есть более чем один (вы можете забыть называть его только тогда, когда вы используете только параметр по умолчанию job, например build 'my-simple-job-without-params').

Вторая проблема заключается в том, что вы находитесь , не передавая параметры правильно. Чтобы передать параметры следующему заданию, вы должны использовать параметр с именем parameters и предоставить ему массив объектов, которые определяют каждый из ваших параметров, например. :

build job: 'jenkins-test-project-build', parameters: [[$class: 'StringParameterValue', name: 'param1', value: "some-value" ]] 

Также обратите внимание, что скобки являются необязательными в вызове метода Groovy.

+0

Да, действительно .. Я нашел эту проблему после решения первой: D Спасибо за ваш ответ – andi

+3

Мне пришлось использовать несколько иной синтаксис, чтобы передать параметр для работы для меня: 'build job: 'jenkins-test -project-build ', параметры: [string (name:' param1 ', value: "some-value")] ' – Zoodor

0

Используйте генератор кода трубопровода для конкретного сервера jenkins для генерации кода, в моем случае это происходило из-за несоответствия версии, мы используем другую версию для разработки, затем производственную, и каждый из них использовал другой синтаксис для вызова задания и параметры прохождения.

Смежные вопросы