我正在尝试创建一个WCF REST客户端,它将与Jenkins进行通信并从XML文件创建作业,然后构建作业。我的理解是,你可以用詹金斯做到这一点。使用REST创建作业并在jenkins中执行它们
有人可以提供一些命令,您可以在浏览器的地址栏上键入来创建和构建作业吗?即:http:localhost/jenkins/createItem?name=TESTJOB
沿着这些线。
我正在尝试创建一个WCF REST客户端,它将与Jenkins进行通信并从XML文件创建作业,然后构建作业。我的理解是,你可以用詹金斯做到这一点。使用REST创建作业并在jenkins中执行它们
有人可以提供一些命令,您可以在浏览器的地址栏上键入来创建和构建作业吗?即:http:localhost/jenkins/createItem?name=TESTJOB
沿着这些线。
查看Jenkins API Wiki page(包括最后的评论)。您可以使用Jenkins本身提供的文档填补空白;例如,http://JENKINS_HOST/api
会为您提供创建作业的网址,http://JENKINS_HOST/job/JOBNAME/api
会为您提供触发构建的网址。
我强烈建议避免自定义创建作业配置XML文件,而是像Job DSL plugin那样查看。这为您提供了一个非常好的基于Groovy的DSL,以编程方式创建作业 - 更简洁,更不易出错。
通常,在解析文档时,可能需要一两天时间。能够访问代码或curl命令以便在一小时内启动并运行是有帮助的。这是我的目标,有很多第三方软件。
查看http://scottizu.wordpress.com/2014/04/30/getting-started-with-the-jenkins-api/的帖子,其中列出了几个curl命令。你将不得不用你自己的url替换my.jenkins.com(即JENKINS_HOST)。
创建作业,例如,尝试:
curl -X POST -H "Content-Type:application/xml" -d "<project><builders/><publishers/><buildWrappers/></project>" "http://JENKINS_HOST/createItem?name=AA_TEST_JOB2"
这将使用一个通用的配置。您也可以从手动创建的作业下载配置,然后将其用作模板。
curl "http://JENKINS_HOST/job/MY_JOB_NAME/config.xml" > config.xml
curl -X POST -H "Content-Type:application/xml" -d @config.xml "http://JENKINS_HOST/createItem?name=AA_TEST_JOB3"
执行作业(并设置字符串参数),用途:
curl "http://JENKINS_HOST/job/MY_JOB_NAME/build"
curl "http://JENKINS_HOST/job/MY_JOB_NAME/buildWithParameters?PARAMETER0=VALUE0&PARAMETER1=VALUE1"
我非常爱你 – michaelsnowden 2015-07-07 06:00:11
多亏了GIST - https://gist.github.com/stuart-warren/7786892
检查工作存在
curl -XGET 'http://jenkins/checkJobName?value=yourJobFolderName' --user user.name:YourAPIToken
随着文件夹插件
curl -s -XPOST 'http://jenkins/job/FolderName/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
没有文件夹插件
curl -s -XPOST 'http://jenkins/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken
创建文件夹
curl -XPOST 'http://jenkins/createItem?name=FolderName&mode=com.cloudbees.hudson.plugins.folder.Folder&from=&json=%7B%22name%22%3A%22FolderName%22%2C%22mode%22%3A%22com.cloudbees.hudson.plugins.folder.Folder%22%2C%22from%22%3A%22%22%2C%22Submit%22%3A%22OK%22%7D&Submit=OK' --user user.name:YourAPIToken -H "Content-Type:application/x-www-form-urlencoded"
如果您想在视图存在的情况下将视图创建为视图。
curl -X POST -H "Content-Type:application/xml" -d @build.xml "http://jenkins_host/view/viewName/createItem?name=itemName"
构建。XML filetemplate可以在作业的工作区的根目录中找到
,如果你想创建一个视图:
curl -X POST -H "Content-Type:application/xml" -d @view.xml "http://jenkins_host/createView?name=viewName"
文件view.xml用的内容可能是:
<?xml version="1.0" encoding="UTF-8"?>
<hudson.model.ListView>
<name>viewName</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
<jobNames>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
</jobNames>
<jobFilters/>
<columns>
<hudson.views.StatusColumn/>
<hudson.views.WeatherColumn/>
<hudson.views.JobColumn/>
<hudson.views.LastSuccessColumn/>
<hudson.views.LastFailureColumn/>
<hudson.views.LastDurationColumn/>
<hudson.views.BuildButtonColumn/>
</columns>
</hudson.model.ListView>
并检查是否存在视图:
curl -X POST -H "Content-Type:application/xml" "http://jenkins_host/checkViewName?value=viewName"
检查工作是否存在:
curl -X POST -H "Content-Type:application/xml" "http://jenkins_host/checkJobName?value=jobName"
谢谢,它花了我一下,但我终于弄明白了。我只是希望他们的API维基页面更丰富,并有更好的例子。 – David 2013-04-13 04:39:05