创造就业机会和使用REST在詹金斯执行它们(Create jobs and execute them

2019-08-21 01:25发布

我想创建一个WCF REST客户端,这将传达给詹金斯,并创建一个XML文件中的作业,然后建工作。 我的理解是,你可以做到这一点与詹金斯。

可有一个人请提供您可以键入浏览器的地址栏上创建和编译工作的一些命令? 即: http:localhost/jenkins/createItem?name=TESTJOB类似的规定。

Answer 1:

见詹金斯API Wiki页面 (包括在最后的评论)。 您可以使用詹金斯本身提供的文档填补空白; 例如, http://JENKINS_HOST/api会给你的URL创建工作, http://JENKINS_HOST/job/JOBNAME/api会给你的URL来触发一个构建。

我强烈建议避免作业的配置XML文件的自定义创建和寻找类似的招聘DSL插件代替。 这给你一个很好的基于Groovy的DSL以编程方式创建工作 - 更简洁和更不容易出错。



Answer 2:

通常情况下,通过文件解析时,可能需要一两天。 这是非常有意义的,能够访问代码或卷曲的命令,让你和在一小时内运行。 这就是我的目标有很多的第三方软件。

见在后http://scottizu.wordpress.com/2014/04/30/getting-started-with-the-jenkins-api/其中列出了几个卷曲的命令。 你将不得不替换为您自己的网址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"


Answer 3:

多亏了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"


Answer 4:

如果你想创建一个作业到给定的观点存在一个视图。

curl -X POST -H "Content-Type:application/xml" -d @build.xml "http://jenkins_host/view/viewName/createItem?name=itemName"

这个build.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"


文章来源: Create jobs and execute them in jenkins using REST