`
sunxboy
  • 浏览: 2868846 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

持续集成JenkinsAPI常见用法

 
阅读更多
摘要 jenkins(持续集成开源工具)提供了丰富的api接口,基本上所有的操作都可以使用curl来从后台调度,包括:创建项目,禁用项目,启用项目,获取项目描述,获取配置文件,普通触发,scm触发,带参数触发,带补丁触发。

 

【背景】:部门在搞持续集成,使用jenkins作为核心调度,要再其基础上进行二次封装,所以需要研究下jenkins的api。笔者主要负责搭建平台,在研究用法也花费了些时间,本文主要做个简要的记录,希望能为各位朋友节省时间。

【环境】:(默认读者已经具备了基本的持续集成经验和jenkins用法

1. Jenkins1.455 

2. 系统Suse

3. 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/ 即可得到相应的说明,如图:

 

【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基础入门-4-如何使用Jenkins的CLI.rar

    Jenkins是一款强大的持续集成和持续部署工具,广泛应用于软件开发的自动化流程。CLI(Command Line Interface)是Jenkins的一个重要特性,它允许用户通过命令行与Jenkins服务器进行交互,执行各种任务,如构建、配置...

    简单集成Dome

    10. **持续集成/持续部署(CI/CD)**:Jenkins、GitLab CI/CD等工具自动化构建、测试和部署流程,确保代码快速集成并及时部署到生产环境。 "YouMengShare"可能提供了一些预先封装好的集成解决方案,例如与特定云服务...

    Enterprise Integration with Ruby

    持续集成工具如Jenkins和Travis CI的使用也会被讨论,这些工具可以确保代码的质量和一致性。 安全性和性能优化也是企业级集成不可忽视的部分。书中可能会讲解Ruby的安全最佳实践,如输入验证、权限管理以及如何避免...

    Python库 | peachapisec_ci-1.4.37-py2-none-any.whl

    这个库主要涉及持续集成(CI)和安全相关的API接口。 "peachapisec_ci"库可能是为了解决与安全相关的持续集成流程中的问题而设计的。持续集成是一种软件开发实践,它要求开发人员频繁地将他们的代码更改合并到主...

    Python库 | gardener_cicd_libs-1.1514.0-py3-none-any.whl

    5. 持续集成服务接口:可能包含与Jenkins、Travis CI、GitHub Actions等CI服务的API集成,实现自动化触发和报告。 要使用`gardener_cicd_libs`库,用户可以通过Python的包管理工具pip进行安装,命令可能是: ``` ...

    Python库 | gardener_cicd_libs-1.815.0-py3-none-any.whl

    3. **持续集成服务接口**:与常见的CI/CD平台(如Jenkins、GitLab CI/CD、Travis CI等)进行交互的API,帮助开发者配置和触发自动化构建和测试流程。 4. **部署工具**:库可能包含用于发布应用程序到各种云平台或者...

    C#-.Net常见面试试题 备答案

    - 持续集成的概念,如Jenkins、Travis CI的配置和使用。 这些知识点涵盖了C#和.NET平台的基础到高级概念,面试中常会涉及。通过深入学习和实践,可以提高你在.NET开发领域的专业素养,增加面试成功的机会。记得...

    PyPI 官网下载 | carpentry-ci-0.2.4.tar.gz

    安装完成后,根据库的文档和提供的API,用户可以在自己的项目中集成`carpentry-ci`以实现持续集成的功能。 为了更深入地了解`carpentry-ci`,用户需要查看其源代码、阅读文档或访问其在PyPI上的项目页面,获取详细...

    hello-jenkins:我用来测试 Jenkins 的超级示例应用程序

    "Hello-Jenkins:我用来测试 Jenkins 的超级示例应用程序" 这个标题揭示了我们正在处理一个与 Jenkins 相关的项目,它是一个用于持续集成和持续交付(CI/CD)的开源工具。"Hello-Jenkins" 可能是一个专门为展示 Jenkins...

    Python库 | crackle_automation_api_client-0.1-py3-none-any.whl

    10. **持续集成/持续部署(CI/CD)**:库开发者可能使用CI/CD工具(如Jenkins、Travis CI或GitHub Actions)来确保代码质量,自动测试新版本,并发布更新到PyPI(Python Package Index)。 了解这些知识点,开发者...

    Python库 | gardener-cicd-libs-1.873.0.tar.gz

    4. **持续集成服务接口**:与Jenkins、GitLab CI/CD、Travis CI等平台的API交互,触发和监控构建任务。 5. **部署策略**:支持蓝绿部署、金丝雀发布等不同的部署模式。 6. **日志管理和监控**:集成日志记录工具,如...

    基于springboot毕业设计网盘后端API.zip

    10. **持续集成/持续部署(CI/CD)**:如Jenkins、GitLab CI/CD等工具,可以自动化构建、测试和部署过程,提高开发效率。 综上,这个项目涵盖了SpringBoot框架的使用,RESTful API设计,数据库操作,安全控制,以及...

    Python库 | ddadevops-0.14.1.tar.gz

    - 持续集成/持续部署(CI/CD)工具:可能包含集成Jenkins、GitLab CI/CD或其他CI服务的脚本或API。 - 监控工具:可能提供对系统资源、应用性能或错误日志的监控功能。 - 日志管理:帮助收集、分析和存储应用程序的日志...

    C#面试宝典 带答案

    11. **单元测试与持续集成**:掌握如何编写单元测试,使用NUnit或xUnit等工具,以及了解持续集成的基本概念和工具,如Jenkins或TeamCity。 12. **设计模式**:学习常见的设计模式,如单例模式、工厂模式、观察者...

    PHP高级程序设计_模式、框架与测试 pdf

    持续集成/持续部署(CI/CD)工具如Jenkins和Travis CI可以帮助自动化测试流程,确保每次代码更改后都能快速获得反馈。此外,代码覆盖率工具如php-coveralls能帮助开发者了解测试覆盖的全面性。 除了上述核心内容,...

    PyPI 官网下载 | hopic-1.46.0-py3-none-any.whl

    常见的集成平台如GitHub Actions、GitLab CI/CD或Jenkins都可以与hopic结合,实现自动化工作流。 总的来说,“hopic-1.46.0-py3-none-any.whl”是Python开发者在PyPI上下载的hopic库的特定版本,用于简化和自动化...

    PhantomJS在Web自动化测试中的应用.rar

    5. **持续集成**:与持续集成工具(如Jenkins)结合,实现自动化构建和测试。 四、PhantomJS的API及用法 PhantomJS的API包括网页导航、事件处理、网络请求等,例如: - `page.open(url, callback)`:打开指定URL,...

    selenium webdirver电子书+代码

    8. **报告生成与持续集成**:了解如何生成详细的测试报告,以及如何将Selenium测试集成到持续集成工具如Jenkins中,实现自动化测试流水线。 9. **最佳实践**:书中可能会提供一些最佳实践,如如何设计可重用的测试...

    一个简单而优雅的后端项目, 封装常用数据库组件及应用示例.zip

    8. **持续集成/持续部署(CI/CD)**:对于企业级应用,快速迭代和自动化部署是必要的。项目可能集成了GitLab CI/CD或Jenkins等工具,实现代码提交自动触发构建和部署。 通过深入研究和学习这个"fly-master"项目,...

    Guns技术文档(pdf)

    10. **持续集成与部署**:涵盖Jenkins、Docker等工具的使用,指导开发者进行持续集成和部署。 11. **最佳实践与进阶指南**:分享了一些开发最佳实践,以及如何利用Guns进行更高级的定制和扩展。 总之,《Guns技术...

Global site tag (gtag.js) - Google Analytics