写点什么

针对 DevOps 的 10 款最佳 Jenkins 插件

  • 2018-07-19
  • 本文字数:1508 字

    阅读完需:约 5 分钟

尽管目前在 CI/CD 领域有着众多的平台,Jenkins 一直是最著名的持续集成平台之一。虽然它经历了和 Oracle 的争斗,最终从之前的Hudson 单独分离出来,但是凭借社区和大公司的支持,目前Jenkins 有超过1500 个插件,用于支撑整个持续集成流程。

不过由于插件数量众多,要选择一些合适的Jenkins 插件会比较困难,本文介绍了一些比较有用的Jenkins 插件,能够提升开发者效率。

Job DSL Plugin

对于很多开发者来说,不同的仓库和项目分支都需要去 Jenkins 上重新创建任务。这是一个重复且单调的工作,对于开发者来说非常不友好。

Jenkins Job DSL Plugin 可以让开发者通过 Groovy 脚本来定义和配置任务,随后插件会通过执行这些脚本来维护 Jenkins 任务。这样开发团队可以定制自己的模板文件,通过领域特定语言(Domain Specific Language,DSL)直接定义和创建任务。

Job Generator Plugin

和 Job DSL Plugin 类似,Job Generator Plugin 也是用于快速创建任务。对于大团队来说,整个持续集成流程应该类似,不同的项目的区别主要就是代码分支等。该插件可以让团队的配置管理员为整个团队定义一个参数化的模板,项目开发人员可以通过这个模板快速的在 Jenkins 上创建出任务。

该插件和 Job DSL 插件的最大区别是使用者无需了解 Groovy。

Performance Plugin

该插件可以读取和解析测试框架输出的报告,并且在 Jenkins 上绘制性能和稳定性相关的图表。Performance Plugin 支持的测试框架有 JUnit JMeter , Twitter 的 Lago Taurus 。下图是该插件输出的示例图:

Gitlab Merge Request Builder Plugin

Gitlab Merge Request Builder Plugin 可以方便的自动发起代码审查,它在创建 pull request 的时候,会自动带上关联任务的运行结果,以方便代码审查着确认改动的正确性。

同时,这款插件还支持自动合并,既在代码审查通过后自动合并该 pull request 内容。

JIRA Plugin

JIRA Plugin 可以让 Jenkins 任务和 JIRA 集成起来,这样项目管理者可以通过 JIRA 了解项目进度,开发者也可以通过该插件直接更改 JIRA 上的 issue 状态。

Kubernetes Plugin

和最近大热的容器编排框架 Kubernetes 集成当然不能落下了。另外,Jenkins 对执行机的管理一直比较弱,无法做到快速的扩容和缩容。Kubernetes Plugin 通过引入 Kubernetes 的容器编排能力,让 Jenkins 执行机运行在 Kubernetes 环境中。

Build Pipeline plugin

对一个系统的持续集成会包含很多个方面,如果将它们都杂糅在一个 Jenkins 任务中,会提高排查成本,也不利于整个持续集成的运作。Build Pipeline plugin 可以让项目管理员针对系统持续集成步骤设置一系列关联的任务,任务之间可以设置不同的触发条件,以确认何时需要人工介入。该插件可以让整个持续集成流程变得非常直观:

SCM Sync Configuration Plugin

对于项目管理人员来说,项目配置的丢失和代码丢失一样是非常危险的。对于代码我们有代码仓库进行保存,对于配置也需要能够备份和版本管理。SCM Sync Configuration Plugin 可以自动将 Jenkins 任务配置同步到版本管理系统中。另外,该插件还可以跟踪配置的变更情况,让项目管理人员能够清晰的了解任务的修改情况。

Jenkins Maven plugin

相比于 Jenkins 内置的 Maven 支持,Jenkins Maven plugin 对 Maven 工程提供了更丰富的功能。包括:自动配置报告插件(如 JUnit、Findbugs 等),增量构建,并行构建等。

Jenkins Subversion plugin

目前仍然有很多项目在使用 Subversion 作为版本控制软件,Jenkins Subversion plugin 让 Jenkins 任务可以支持托管在 Subversion 上的工程。它的功能包括监视 Subversion 仓库变更来触发新的构建和自动更新执行机工作目录,以确保构建的及时性和正确性。

感谢张婵对本文的审校。

2018-07-19 07:128819

评论

发布
暂无评论
发现更多内容

go-zero docker-compose 搭建课件服务(一):编写服务api和proto

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(五):完善user服务

六月的

Docker-compose go-zero

go channel原理及使用场景

六月的

Go channel

react源码中的协调与调度

flyzz177

React

react源码中的fiber架构

flyzz177

React

OKR之剑·理念篇03:OKR理念认同

vivo互联网技术

团队管理 OKR 目标管理

go-zero docker-compose 搭建课件服务(二):编写courseware rpc服务

六月的

Docker-compose go-zero

etcd实现分布式锁

六月的

分布式锁 etcd

golang中的几种并发模式

六月的

golang 并发模式

Redis是如何保证数据一致性的

芥末拌个饭吧

后端 redis 底层原理 10月月更

go-zero docker-compose 搭建课件服务(三):编写courseware api服务

六月的

Docker-compose go-zero

golang的内存管理

六月的

golang 内存管理

【LeetCode】水果成篮Java题解

Albert

算法 LeetCode 10月月更

go-zero docker-compose 搭建课件服务(六):完善jwt鉴权和返回结构

六月的

Docker-compose go-zero

goroutine&waitgroup下载文件

六月的

goroutine waitgroup

租房小程序使用uniapp展示地图map

源字节1号

小程序开发

你知道Redis为什么要设计成单线程吗

芥末拌个饭吧

后端 redis 底层原理 10月月更

Java中的接口详解

共饮一杯无

Java 接口 10月月更

一种基于柔性事务的分布式事务解决方案设计探究

京东科技开发者

分布式事务 事务 分布式架构 事务回滚 分布式处理

Lerna最佳实践(内含大量代码)

鲸品堂

代码 lerna

数据驱动型企业如何借助「新一代智能协作」提升研发效能?

LigaAI

人工智能 数据驱动 亚马逊云科技 企业号十月PK榜

实现etcd服务注册与发现

六月的

Docker-compose go-zero

go-zero docker-compose搭建课件服务(四):生成Dockerfile

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(八):集成jaeger链路追踪

六月的

Docker-compose go-zero

深入浅出redis缓存应用

六月的

redis

rabbitmq原理和应用

六月的

Go RabbitMQ

谈谈spark性能调优的方法

芥末拌个饭吧

spark 后端 10月月更

golang单元测试一(简单函数测试)

六月的

golang 单元测试

go-zero docker-compose 搭建课件服务(九):http统一返回和集成日志服务

六月的

Docker-compose go-zero

go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控

六月的

Docker-compose go-zero

部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息

汪子熙

云原生 Cloud 云平台 SAP 10月月更

针对DevOps的10款最佳Jenkins插件_DevOps & 平台工程_金灵杰_InfoQ精选文章