【背景】:部门在搞持续集成,使用jenkins作为核心调度,要再其基础上进行二次封装,所以需要研究下jenkins的api。笔者主要负责搭建平台,在研究用法也花费了些时间,本文主要做个简要的记录,希望能为各位朋友节省时间。
【环境】:(默认读者已经具备了基本的持续集成经验和jenkins用法)
1. Jenkins1.455
2. 系统Suse
3. Tomcat 6.0.37
4. Java 1.6.0_26
【API介绍】
Jenkins提供了html、json、python API,实质都是以http get/post方式调用的。查看http://www.xxx.xxx/jenkins/api/ 即可得到相应的说明,如图:
【API实践】
1.创建
curl -X POST http://www.xxx.xxx/jenkins/createItem?name=JavaStd --user peterguo:peterguo --data-binary "@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 peterguo:peterguo
4.删除
curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/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: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/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc" --user peterguo:peterguo -F "action=upload" -F "patch.diff=@OtherTest.java.patch"
注:带补丁触发需要先安装补丁插件,并设置项目的补丁参数
【Python调用】
提供python使用pycurl调用的例子片段,实际和curl调用一样,优点是易整合。
import pycurl url = "http://10.129.145.112:8081/jenkins/job/helloworld-freestyle/config.xml" crl = pycurl.Curl() crl.setopt(pycurl.VERBOSE,1) crl.setopt(pycurl.FOLLOWLOCATION, 1) crl.setopt(pycurl.MAXREDIRS, 5) crl.setopt(pycurl.USERPWD, "peterguo:peterguo") crl.setopt(pycurl.CONNECTTIMEOUT, 60) crl.setopt(pycurl.TIMEOUT, 300) crl.setopt(pycurl.HTTPPROXYTUNNEL,1) crl.fp = StringIO.StringIO() crl.setopt(pycurl.URL, url) crl.setopt(crl.WRITEFUNCTION, crl.fp.write) crl.perform() ret = crl.fp.getvalue()
相关推荐
持续集成Jenkins
实战持续集成Jenkins视频教程
该ppt详细介绍了持续集成工具jenkins的介绍以及安装步骤
useradd jenkins 如果不手动创建,在安装Jenkins时,默认会自动创建该用户,那么久可能遇到下面这个问题。 如果Jenkins所在服务器与web服务器不是同一台,那么在构建部署项目时,需要编写项目部署命令(如拷贝项目...
jenkins_svn_maven持续集成.docx jenkins_svn_maven持续集成.docx jenkins_svn_maven持续集成.docx
这是用Go编写的Jenkins API的API客户端。 用法 import "github.com/yosida95/golang-jenkins" 配置身份验证并创建客户端实例: auth := & gojenkins. Auth { Username : "[jenkins user name]" , ApiToken : "...
Jenkins持续集成从入门到精通.pdf
本文档介绍了如何通过Jenkins和jmeter实现接口自动化测试,并通过邮件发送测试报告,很经典的一个文档。
持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。 (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。 (2)防止分支大幅偏离主干。如果不是...
2019企业实战持续集成-Jenkins视频教程
jenkins持续集成部署文档,打通开发、部署,缩短软件开发、部署上线的流程。
java教程之CI持续集成工具jenkins使用教程.zip
持续集成持续集成持续集成持续集成持续集成持续集成持续集成
Jenkins持续集成测试说明文档。适用于持续集成环境配置。敏捷开发必备工具
持续集成,测试可用,有的地方需要修改一下。持续集成,测试可用,有的地方需要修改一下。持续集成,测试可用,有的地方需要修改一下。
1. 安装相关依赖 2. 启动ssh服务&设置为开机启动 3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能 4. 开放ssh以及
jenkins 持续集成部署 文档 中详细说明了,项目部署,svn部署、定时发送邮件配制、设置定时器、及插件安装,用户,角色分配
jenkins 持续集成 sonar sonarqube sonarRun jenkins 持续集成 sonar sonarqube sonarRun
持续集成工具Jenkins.pdf
请将该程序安装在 apache-tomcat目录下的 webapps/jenkins 目录下,推荐使用 apache-tomcat 8 + jenkins 2.176,亲测可用。