【背景】:部门在搞持续集成,使用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是一款强大的持续集成和持续部署工具,广泛应用于软件开发的自动化流程。CLI(Command Line Interface)是Jenkins的一个重要特性,它允许用户通过命令行与Jenkins服务器进行交互,执行各种任务,如构建、配置...
10. **持续集成/持续部署(CI/CD)**:Jenkins、GitLab CI/CD等工具自动化构建、测试和部署流程,确保代码快速集成并及时部署到生产环境。 "YouMengShare"可能提供了一些预先封装好的集成解决方案,例如与特定云服务...
持续集成工具如Jenkins和Travis CI的使用也会被讨论,这些工具可以确保代码的质量和一致性。 安全性和性能优化也是企业级集成不可忽视的部分。书中可能会讲解Ruby的安全最佳实践,如输入验证、权限管理以及如何避免...
这个库主要涉及持续集成(CI)和安全相关的API接口。 "peachapisec_ci"库可能是为了解决与安全相关的持续集成流程中的问题而设计的。持续集成是一种软件开发实践,它要求开发人员频繁地将他们的代码更改合并到主...
5. 持续集成服务接口:可能包含与Jenkins、Travis CI、GitHub Actions等CI服务的API集成,实现自动化触发和报告。 要使用`gardener_cicd_libs`库,用户可以通过Python的包管理工具pip进行安装,命令可能是: ``` ...
3. **持续集成服务接口**:与常见的CI/CD平台(如Jenkins、GitLab CI/CD、Travis CI等)进行交互的API,帮助开发者配置和触发自动化构建和测试流程。 4. **部署工具**:库可能包含用于发布应用程序到各种云平台或者...
- 持续集成的概念,如Jenkins、Travis CI的配置和使用。 这些知识点涵盖了C#和.NET平台的基础到高级概念,面试中常会涉及。通过深入学习和实践,可以提高你在.NET开发领域的专业素养,增加面试成功的机会。记得...
安装完成后,根据库的文档和提供的API,用户可以在自己的项目中集成`carpentry-ci`以实现持续集成的功能。 为了更深入地了解`carpentry-ci`,用户需要查看其源代码、阅读文档或访问其在PyPI上的项目页面,获取详细...
"Hello-Jenkins:我用来测试 Jenkins 的超级示例应用程序" 这个标题揭示了我们正在处理一个与 Jenkins 相关的项目,它是一个用于持续集成和持续交付(CI/CD)的开源工具。"Hello-Jenkins" 可能是一个专门为展示 Jenkins...
10. **持续集成/持续部署(CI/CD)**:库开发者可能使用CI/CD工具(如Jenkins、Travis CI或GitHub Actions)来确保代码质量,自动测试新版本,并发布更新到PyPI(Python Package Index)。 了解这些知识点,开发者...
4. **持续集成服务接口**:与Jenkins、GitLab CI/CD、Travis CI等平台的API交互,触发和监控构建任务。 5. **部署策略**:支持蓝绿部署、金丝雀发布等不同的部署模式。 6. **日志管理和监控**:集成日志记录工具,如...
10. **持续集成/持续部署(CI/CD)**:如Jenkins、GitLab CI/CD等工具,可以自动化构建、测试和部署过程,提高开发效率。 综上,这个项目涵盖了SpringBoot框架的使用,RESTful API设计,数据库操作,安全控制,以及...
- 持续集成/持续部署(CI/CD)工具:可能包含集成Jenkins、GitLab CI/CD或其他CI服务的脚本或API。 - 监控工具:可能提供对系统资源、应用性能或错误日志的监控功能。 - 日志管理:帮助收集、分析和存储应用程序的日志...
11. **单元测试与持续集成**:掌握如何编写单元测试,使用NUnit或xUnit等工具,以及了解持续集成的基本概念和工具,如Jenkins或TeamCity。 12. **设计模式**:学习常见的设计模式,如单例模式、工厂模式、观察者...
持续集成/持续部署(CI/CD)工具如Jenkins和Travis CI可以帮助自动化测试流程,确保每次代码更改后都能快速获得反馈。此外,代码覆盖率工具如php-coveralls能帮助开发者了解测试覆盖的全面性。 除了上述核心内容,...
常见的集成平台如GitHub Actions、GitLab CI/CD或Jenkins都可以与hopic结合,实现自动化工作流。 总的来说,“hopic-1.46.0-py3-none-any.whl”是Python开发者在PyPI上下载的hopic库的特定版本,用于简化和自动化...
5. **持续集成**:与持续集成工具(如Jenkins)结合,实现自动化构建和测试。 四、PhantomJS的API及用法 PhantomJS的API包括网页导航、事件处理、网络请求等,例如: - `page.open(url, callback)`:打开指定URL,...
8. **报告生成与持续集成**:了解如何生成详细的测试报告,以及如何将Selenium测试集成到持续集成工具如Jenkins中,实现自动化测试流水线。 9. **最佳实践**:书中可能会提供一些最佳实践,如如何设计可重用的测试...
8. **持续集成/持续部署(CI/CD)**:对于企业级应用,快速迭代和自动化部署是必要的。项目可能集成了GitLab CI/CD或Jenkins等工具,实现代码提交自动触发构建和部署。 通过深入研究和学习这个"fly-master"项目,...
10. **持续集成与部署**:涵盖Jenkins、Docker等工具的使用,指导开发者进行持续集成和部署。 11. **最佳实践与进阶指南**:分享了一些开发最佳实践,以及如何利用Guns进行更高级的定制和扩展。 总之,《Guns技术...