Для добавления к этому вопросу я узнал, что Вы не должны использовать /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
я понимаю, что этот ответ является несколькими годами поздно, но я надеюсь, что это может быть полезной информацией для кого-то еще!