在旧的自由式项目中,我们可以简单地开始一个具有以下参数的构建:
curl -X POST JENKINS_URL/job/JOB_NAME/build \
--data token=TOKEN \
--data-urlencode json='{"parameter": [{"name":"id", "value":"123"}]}'
这似乎不适用于管道输入插件
使用管道,我可以通过两个步骤完成此任务:
提交新工作:
curl -X POST JENKINS_URL/job/JOB_NAME/build
然后提交输入参数:
curl -X POST -d json='{"parameter": {"name": "id", "value": "123"}}'
JENKINS_URL/job/JOB_NAME/build/BUILD_NUMBER/input/INPUT_NAME/submit
但这看起来很麻烦,而且我必须以某种方式在启动后检索build_number,等到作业启动(待定时间)然后才提交。如果输入超时,这会使事情变得复杂。
我可以通过单个API调用以某种方式执行此操作吗?
答案 0 :(得分:0)
您可以使用参数化管道作业。它就像参数化的自由式作业一样工作。 只需将作业配置为参数化即可。 https://issues.jenkins-ci.org/secure/attachment/21424/PARAMETERIZED%20BUILD.png
答案 1 :(得分:0)
正如Timmy所提到的,参数化管道工作就像参数化的自由式工作一样。
要触发它,您可以执行以下命令:
curl -X POST JENKINS_URL/job/JOB_NAME/buildWithParameters?id=123 --data token=TOKEN