59
задан 11 March 2015 в 17:08

1 ответ

Для добавления к этому вопросу я узнал, что Вы не должны использовать /buildWithParameters конечная точка.

В моем сценарии, у меня есть сценарий, который инициировал Jenkins для запущения тестов после развертывания. Некоторые из этих тестов требуют, чтобы дополнительная информация о развертывании работала правильно.

, Если я пытался использовать /buildWithParameters на задании, которое не ожидает параметры, задание не работало бы. Я не хочу входить и редактировать каждое задание для требования поддельных параметров только, чтобы заставить задания работать.

Вместо этого я нашел, что можно передать параметры как это:

curl -X POST --data-urlencode "token=${TOKEN}" --data-urlencode json='{"parameter": [{"name": "myParam", "value": "TEST"}]}' https://jenkins.corp/job/$JENKINS_JOB/build

С этим json=... это передаст параметрический усилитель myParam со значением TEST к заданию каждый раз, когда вызов выполняется. Однако задание Jenkins будет все еще работать, даже если оно не будет ожидать параметр myParam.

единственный сценарий, который это не покрывает, - то, если задание имеет параметр, который НЕ передается в json. Даже если заданию установят значение по умолчанию для параметра, то оно не выполнит задание. В этом сценарии Вы столкнетесь со следующим сообщением об ошибке / отслеживание стека, когда Вы будете звонить /build:

java.lang.IllegalArgumentException: No such parameter definition: myParam

я понимаю, что этот ответ является несколькими годами поздно, но я надеюсь, что это может быть полезной информацией для кого-то еще!

Примечание: Я использую Jenkins v2.163

1
ответ дан 1 November 2019 в 11:59

Другие вопросы по тегам:

Похожие вопросы: