从jenkins外面叫jenkins?

我是Jenkins的新手,我不确定这是否可行,但是我想build立一个Web界面,点击“Start Job”,这将告诉Jenkins开始一个特定的构build工作。

jenkins有一个Web服务,将允许这样的事情? 如果是这样,请有人指示我或发表一个简单的例子?

这里是链接到文档: jenkins远程访问API 。

检查提交作业部分。

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

jenkins也支持参数化构build。

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

啊哈,在文档中find它。 这么简单: http://YOURHOST/jenkins/job/PROJECTNAME/build

有一个使用Python的上述API的很好的例子。 这个项目名为Python Jenkins,你可以在这里find: link

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

你可以看看这个文档https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

我需要添加参数,我想通过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' 

jenkins有一个logging的REST API。 你可以让你的小web服务调用它。

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

在作业configuration/构build触发器设置令牌/触发器远程构build。

使用curl如果你有多个参数要传递,像一个标记和一个参数,你可能必须在Linux shell中引用:

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