发表于:2019-05-05
目前 Jenkins 有超过 1500 个插件,用于支撑整个持续集成流程。由于插件数量众多,要选择一些合适的 Jenkins 插件会比较困难,本文介绍了一些比较有用的 Jenkins 插件,能够提升开发者效率。
尽管目前在 CI/CD 领域有着众多的平台,Jenkins 一直是最著名的持续集成平台之一。虽然它经历了和 Oracle 的争斗,最终从之前的 Hudson 单独分离出来,但是凭借社区和大公司的支持,目前 Jenkins 有超过 1500 个插件,用于支撑整个持续集成流程。
不过由于插件数量众多,要选择一些合适的 Jenkins 插件会比较困难,本文介绍了一些比较有用的 Jenkins 插件,能够提升开发者效率。
参考链接:https://github.com/jenkinsci/job-dsl-plugin
对于很多开发者来说,不同的仓库和项目分支都需要去 Jenkins 上重新创建任务。这是一个重复且单调的工作,对于开发者来说非常不友好。
Jenkins Job DSL Plugin 可以让开发者通过 Groovy 脚本来定义和配置任务,随后插件会通过执行这些脚本来维护 Jenkins 任务。这样开发团队可以定制自己的模板文件,通过领域特定语言(Domain Specific Language,DSL)直接定义和创建任务。
参考链接:https://wiki.jenkins.io/display/JENKINS/Job+Generator+Plugin
和 Job DSL Plugin 类似,Job Generator Plugin 也是用于快速创建任务。对于大团队来说,整个持续集成流程应该类似,不同的项目的区别主要就是代码分支等。该插件可以让团队的配置管理员为整个团队定义一个参数化的模板,项目开发人员可以通过这个模板快速的在 Jenkins 上创建出任务。
该插件和 Job DSL 插件的最大区别是使用者无需了解 Groovy。
参考链接:https://plugins.jenkins.io/performance
该插件可以读取和解析测试框架输出的报告,并且在 Jenkins 上绘制性能和稳定性相关的图表。Performance Plugin 支持的测试框架有 JUnit、JMeter, Twitter 的 Lago 和 Taurus。下图是该插件输出的示例图:
参考链接:https://github.com/timols/jenkins-gitlab-merge-request-builder-plugin
Gitlab Merge Request Builder Plugin 可以方便的自动发起代码审查,它在创建 pull request 的时候,会自动带上关联任务的运行结果,以方便代码审查着确认改动的正确性。
同时,这款插件还支持自动合并,既在代码审查通过后自动合并该 pull request 内容。
参考链接:https://plugins.jenkins.io/jira
JIRA Plugin 可以让 Jenkins 任务和 JIRA 集成起来,这样项目管理者可以通过 JIRA 了解项目进度,开发者也可以通过该插件直接更改 JIRA 上的 issue 状态。
参考链接:https://github.com/jenkinsci/kubernetes-plugin
和最近大热的容器编排框架 Kubernetes 集成当然不能落下了。另外,Jenkins 对执行机的管理一直比较弱,无法做到快速的扩容和缩容。Kubernetes Plugin 通过引入 Kubernetes 的容器编排能力,让 Jenkins 执行机运行在 Kubernetes 环境中。
参考链接:https://github.com/jenkinsci/build-pipeline-plugin
对一个系统的持续集成会包含很多个方面,如果将它们都杂糅在一个 Jenkins 任务中,会提高排查成本,也不利于整个持续集成的运作。Build Pipeline plugin 可以让项目管理员针对系统持续集成步骤设置一系列关联的任务,任务之间可以设置不同的触发条件,以确认何时需要人工介入。该插件可以让整个持续集成流程变得非常直观:
参考链接:https://plugins.jenkins.io/scm-sync-configuration
对于项目管理人员来说,项目配置的丢失和代码丢失一样是非常危险的。对于代码我们有代码仓库进行保存,对于配置也需要能够备份和版本管理。SCM Sync Configuration Plugin 可以自动将 Jenkins 任务配置同步到版本管理系统中。另外,该插件还可以跟踪配置的变更情况,让项目管理人员能够清晰的了解任务的修改情况。
参考链接:https://plugins.jenkins.io/maven-plugin
相比于 Jenkins 内置的 Maven 支持,Jenkins Maven plugin 对 Maven 工程提供了更丰富的功能。包括:自动配置报告插件(如 JUnit、Findbugs 等),增量构建,并行构建等。
参考链接:https://plugins.jenkins.io/subversion
目前仍然有很多项目在使用 Subversion 作为版本控制软件,Jenkins Subversion plugin 让 Jenkins 任务可以支持托管在 Subversion 上的工程。它的功能包括监视 Subversion 仓库变更来触发新的构建和自动更新执行机工作目录,以确保构建的及时性和正确性。