《2022年持续集成JenkinsAPI常见用法 .pdf》由会员分享,可在线阅读,更多相关《2022年持续集成JenkinsAPI常见用法 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、持续集成 JenkinsAPI 常见用法jenkins(持续集成开源工具)提供了丰富的api接口,基本上所有的操作都可以使用curl来从后台调度,包括:创建项目,禁用项目,启用项目,获取项目描述,获取配置文件,普通触发,scm触发,带参数触发,带补丁触发。【背景】:部门在搞持续集成,使用jenkins作为核心调度,要再其基础上进行二次封装,所以需要研究下jenkins的 api。笔者主要负责搭建平台,在研究用法也花费了些时间,本文主要做个简要的记录,希望能为各位朋友节省时间。【环境】:(默认读者已经具备了基本的持续集成经验和jenkins用法)1.Jenkins1.4552.系统 Suse 3
2、.Tomcat 6.0.37 4.Java 1.6.0_26 5.patch-parameter【API 介绍】Jenkins提供了html、json、python API,实质都是以http get/post方式调用的。查看http:/www.xxx.xxx/jenkins/api/即可得到相应的说明,如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -【API 实践】1.创建curl-X POST http:/www.xxx.xxx/jenkins/createItem?name=JavaStd-user peterguo:peterguo-data-binary
3、 javastd.config.xml-H Content-Type:text/xml 2.禁用curl-X POST http:/www.xxx.xxx/jenkins/job/JavaStd/disable-user peterguo:peterguo 3.启用curl-X POST http:/www.xxx.xxx/jenkins/job/JavaStd/enable-user 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -peterguo:peterguo 4.删除curl-X POST http:/www.xxx.xxx/jenkins/job/JavaS
4、td/doDelete-user peterguo:peterguo 5.获取项目描述curl-X GET http:/www.xxx.xxx/jenkins/job/JavaStd/description-user peterguo:peterguo 6.获取配置文件curl-X GET http:/www.xxx.xxx/jenkins/job/JavaStd/config.xml-user peterguo:peterguo 7.触发 SCM 检查curl-X GET http:/www.xxx.xxx/jenkins/job/JavaStd/polling-user peterguo:
5、peterguo 8.普通触发curl-X GET http:/www.xxx.xxx/jenkins/job/JavaStd/build-user peterguo:peterguo 9.带参数触发curl-X GET http:/www.xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc-user peterguo:peterguo 10.带参数和补丁触发curl-X POST http:/www.xxx.xxx/jenkins/job/helloworl
6、d-freestyle/buildWithParameters?bAllTest名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -=&Choices=2&strParam=abc-user peterguo:peterguo-F action=upload-F patch.diff=OtherTest.java.patch 注:带补丁触发需要先安装补丁插件,并设置项目的补丁参数【Python调用】提供 python使用 pycurl调用的例子片段,实际和curl调用一样,优点是易整合。view source print?01 import pycurl 02 url=ht
7、tp:/10.129.145.112:8081/jenkins/job/helloworld-freestyle/config.xml 03 crl=pycurl.Curl()04 crl.setopt(pycurl.VERBOSE,1)05 crl.setopt(pycurl.FOLLOWLOCATION,1)06 crl.setopt(pycurl.MAXREDIRS,5)07 crl.setopt(pycurl.USERPWD,peterguo:peterguo)08 09 crl.setopt(pycurl.CONNECTTIMEOUT,60)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -10 crl.setopt(pycurl.TIMEOUT,300)11 crl.setopt(pycurl.HTTPPROXYTUNNEL,1)12 crl.fp=StringIO.StringIO()13 14 crl.setopt(pycurl.URL,url)15 crl.setopt(crl.WRITEFUNCTION,crl.fp.write)16 crl.perform()17 ret=crl.fp.getvalue()名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -