我是Jenkins的新手,我不确定这是否可行,但我想建立一个网络界面,有人可以点击“开始工作”,这将告诉Jenkins开始一个特定的构建工作。
Jenkins是否有一个允许这样的东西的网络服务?如果是这样,那么一个简单的例子是什么?
答案 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请求来触发您的工作。
http://JENKINS_URL/generic-webhook-trigger/invoke?token=TOKEN_VALUE
替换您的詹金斯网址和令牌值