使用REST在jenkins中创建作业并执行它们

使用REST在jenkins中创建作业并执行它们,rest,wcf,jenkins,jenkins-api,Rest,Wcf,Jenkins,Jenkins Api,我正在尝试创建一个WCF REST客户端,它将与Jenkins通信,并从XML文件创建作业,然后构建作业。我的理解是你可以和詹金斯一起做 有人能提供一些命令,你可以在浏览器的地址栏上键入这些命令来创建和生成作业吗?例如:http:localhost/jenkins/createItem?name=TESTJOB类似的内容。请参阅(包括结尾的注释)。您可以使用Jenkins自己提供的文档来填补空白;例如,http://JENKINS_HOST/api将为您提供创建作业的URL和http://JEN

我正在尝试创建一个WCF REST客户端,它将与Jenkins通信,并从XML文件创建作业,然后构建作业。我的理解是你可以和詹金斯一起做

有人能提供一些命令,你可以在浏览器的地址栏上键入这些命令来创建和生成作业吗?例如:
http:localhost/jenkins/createItem?name=TESTJOB
类似的内容。

请参阅(包括结尾的注释)。您可以使用Jenkins自己提供的文档来填补空白;例如,
http://JENKINS_HOST/api
将为您提供创建作业的URL和
http://JENKINS_HOST/job/JOBNAME/api
将为您提供触发生成的URL


我强烈建议避免自定义创建作业配置XML文件,而改为查看类似的内容。这为您提供了一个很好的基于Groovy的DSL,以编程方式创建作业—更简洁,更不容易出错。

通常,在解析文档时,可能需要一到两天的时间。能够访问代码或curl命令以在一小时内启动并运行是很有帮助的。这是我对很多第三方软件的目标

请参阅文章,其中列出了几个curl命令。您必须用自己的url替换my.jenkins.com(即jenkins_主机)

例如,要创建作业,请尝试:

curl -X POST -H "Content-Type:application/xml" -d "<project><builders/><publishers/><buildWrappers/></project>" "http://JENKINS_HOST/createItem?name=AA_TEST_JOB2"
要执行作业(并设置字符串参数),请使用:

多亏了一个要点-

检查作业是否存在

带文件夹插件

没有文件夹插件

创建文件夹


如果要在给定视图存在的视图中创建作业

curl -X POST -H "Content-Type:application/xml" -d @build.xml "http://jenkins_host/view/viewName/createItem?name=itemName"
build.xml文件模板可以在作业工作区的根目录中找到

如果要创建视图,请执行以下操作:

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/checkJobName?value=jobName"
要创建作业,请执行以下操作:

curl-xpost-H“内容类型:application/xml”-d“-u用户名:API\u令牌http://JENKINS_HOST/createItem?name=AA_TEST_JOB2
要创建作业,请执行以下操作:

curl-X POST-u用户名:API\u令牌http://JENKINS_HOST/job/MY_JOB_NAME/build

谢谢,这花了我一点时间,但我终于找到了答案。我只希望他们的API wiki页面能提供更多信息,并有更好的示例。
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"
curl  -X POST -H "Content-Type:application/xml"  -d @view.xml "http://jenkins_host/createView?name=viewName"
<?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"