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

cha*_*imp 46 jenkins

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

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

小智 51

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

查看" 提交工作"部分.

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

  • 这很难找到(参见[1])但是要设置TOKEN,您需要在Jenkins Job中的"Build Triggers"下检查"远程触发构建(例如,从脚本)".[1] https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build#ParameterizedBuild-Launchingabuildwithparameters (4认同)

Apu*_*urv 28

Jenkins也支持参数化构建.

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

  • 这是过期的,但我遇到了同样的问题,结果发现POST/build期望内容类型:x-www-form-urlencoded,并且在正文中应该有一个名为的key "json",以实际的json为值.尝试使用内容类型:application/json和正文中的实际json进行POST,将呈现servlet异常.Jenkins似乎确实有自己的方式来处理JSON ...... (3认同)

cha*_*imp 8

啊哈,我在文档中找到了它.很简单:

http://YOURHOST/jenkins/job/PROJECTNAME/build
Run Code Online (Sandbox Code Playgroud)


Sam*_*att 6

我需要添加参数,我想通过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'
Run Code Online (Sandbox Code Playgroud)


kaz*_*erm 5

用:

http://some server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value
Run Code Online (Sandbox Code Playgroud)

你可以看看这个文档:参数化构建


Amr*_*tfy 5

curl -H POST http://USERNAME:PASSWORD@JENKINS_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN
Run Code Online (Sandbox Code Playgroud)

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