jenkins管道 - 通过url

时间:2016-11-30 17:08:20

标签: jenkins jenkins-pipeline

在旧的自由式项目中,我们可以简单地开始一个具有以下参数的构建:

    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调用以某种方式执行此操作吗?

2 个答案:

答案 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

这是Parameterized Build documentation