资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
word持续集成JenkinsAPI常见用法jenkins持续集成开源工具提供了丰富的api接口,根本上所有的操作都可以使用curl来从后台调度,包括:创建项目,禁用项目,启用项目,获取项目描述,获取配置文件,普通触发,scm触发,带参数触发,带补丁触发。 【背景】:部门在搞持续集成,使用jenkins作为核心调度,要再其根底上进展二次封装,所以需要研究下jenkins的api。笔者主要负责搭建平台,在研究用法也花费了些时间,本文主要做个简要的记录,希望能为各位朋友节省时间。【环境】:默认读者已经具备了根本的持续集成经验和jenkins用法1. 2. 系统Suse5. patch-parameter【API介绍】 Jenkins提供了html、json、python API,实质都是以 get/post方式调用的。查看.xxx.xxx/jenkins/api/ 即可得到相应的说明,如图:【API实践】curl -X POST .xxx.xxx/jenkins/createItem?name=JavaStd -user peterguo:peterguo -data-binary javastd.config.xml -H Content-Type: text/xml2.禁用 curl -X POST .xxx.xxx/jenkins/job/JavaStd/disable -user peterguo:peterguo3.启用 curl -X POST .xxx.xxx/jenkins/job/JavaStd/enable -user peterguo:peterguo4.删除 curl -X POST .xxx.xxx/jenkins/job/JavaStd/doDelete -user peterguo:peterguo5.获取项目描述 curl -X GET .xxx.xxx/jenkins/job/JavaStd/description -user peterguo:peterguo6.获取配置文件 curl -X GET .xxx.xxx/jenkins/job/JavaStd/config.xml -user peterguo:peterguo7.触发SCM检查 curl -X GET .xxx.xxx/jenkins/job/JavaStd/polling -user peterguo:peterguo8.普通触发 curl -X GET .xxx.xxx/jenkins/job/JavaStd/build -user peterguo:peterguocurl -X GET .xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc -user peterguo:peterguo10.带参数和补丁触发 curl -X POST .xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc -user peterguo:peterguo -F action=upload -F patch.diff=OtherTest.java.patch注:带补丁触发需要先安装补丁插件,并设置项目的补丁参数【Python调用】 提供python使用pycurl调用的例子片段,实际和curl调用一样,优点是易整合。view sourceprint?01import pycurl02url = 10.129.145.112:8081/jenkins/job/helloworld-freestyle/config.xml03crl = pycurl.Curl()04crl.setopt(pycurl.VERBOSE,1)05crl.setopt(pycurl.FOLLOWLOCATION, 1)06crl.setopt(pycurl.MAXREDIRS, 5)07crl.setopt(pycurl.USERPWD, peterguo:peterguo)0809crl.setopt(pycurl.CONNECTTIMEOUT, 60)10crl.setopt(pycurl.TIMEOUT, 300)11crl.setopt(pycurl.PROXYTUNNEL,1)12crl.fp = StringIO.StringIO()1314crl.setopt(pycurl.URL, url)15crl.setopt(crl.WRITEFUNCTION, crl.fp.write)16crl.perform()17ret = crl.fp.getvalue() /
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号