从詹金斯外面打电话给Jenkins?

时间:2011-12-14 22:43:31

标签: jenkins

我是Jenkins的新手,我不确定这是否可行,但我想建立一个网络界面,有人可以点击“开始工作”,这将告诉Jenkins开始一个特定的构建工作。

Jenkins是否有一个允许这样的东西的网络服务?如果是这样,那么一个简单的例子是什么?

10 个答案:

答案 0 :(得分:51)

以下是文档的链接: Jenkins Remote Access API

查看提交作业部分。

在作业配置中,您设置了一个令牌,然后向POST创建JENKINS_URL/job/JOBNAME/build?token=TOKEN请求。这可能是最基本的用法。

答案 1 :(得分:27)

Jenkins也支持参数化构建。

因此,如果要传递可配置构建生成的参数,可以通过发布它来传递它们,同时使用http:// YOURHOST / jenkins / job / PROJECTNAME / buildWithParameters调用Jenkins构建请求。

答案 2 :(得分:7)

啊哈,我在文档中找到了它。这么简单:

http://YOURHOST/jenkins/job/PROJECTNAME/build

答案 3 :(得分:4)

从Python中使用上述API有很好的示例。该项目名为 Python Jenkins ,您可以在此处找到它:link

答案 4 :(得分:4)

使用:

http://some server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

您可以查看此文档: Parameterized Build

答案 5 :(得分:4)

我需要添加参数,我想通过https完成。我花了一段时间,但以下工作对我有用:

curl --request POST --url 'https://HOST_NAME/job/JOB_NAME/buildWithParameters?token=TOKEN'  --header 'cache-control: no-cache' --header 'content-type: application/x-www-form-urlencoded' --data 'name1=value1&name2=value2'

答案 6 :(得分:3)

Jenkins有一个记录在案的REST API。您可以让您的小型Web服务调用它。

答案 7 :(得分:1)

curl -H POST http://USERNAME:PASSWORD@JENKINS_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN

在作业配置中设置YOUR_TOKEN - >构建触发器 - >触发器远程构建。

答案 8 :(得分:1)

如果你有多个参数传递象curl和参数你可能不得不在Linux shell上引用,那么使用curl:

curl -H POST "http://USERNAME:PASSWORD@JENKINS_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN&PARAMETER=VALUE"

答案 9 :(得分:0)

安装通用Webhook触发器插件。 在构建触发器操作中选择通用Webhook触发器。生成随机字符串并粘贴令牌。 现在,您可以通过对以下网址的http请求来触发您的工作。

screenshot

http://JENKINS_URL/generic-webhook-trigger/invoke?token=TOKEN_VALUE

替换您的詹金斯网址和令牌值