从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"