近十年来,持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域都取得了很大的进步。DevOps 测试的兴起导致了对 CI/CD 工具的快速需求。现有的解决方案总是随着时间的推移而改进,大量新产品或新版本正在进入 QA 领域。
在所有可选的用于测试的 CI/CD 工具中,Jenkins 和 GitLab CI/CD 是你肯定应该考虑的两款工具。
1. Jenkins 介绍
Jenkins 是一款著名的可扩展的用于自动化部署的开源 CI/CD 工具。Jenkins 是完全用 Java 编写的,是在 MIT 许可下发布的。它有一组强大的功能,可以将软件的构建、测试、部署、集成和发布等相关任务自动化。这款用于测试的自动化 CI/CD 工具可以在 macOS、Windows 和各种 UNIX 版本(例如 OpenSUSE、Ubuntu、Red Hat 等)系统上使用。除了通过本地安装包安装,它还可以在任何安装过 Java 运行时环境(Java Runtime Environment,JRE)的机器上单独安装或者作为一个 Docker 安装。Jenkins 团队还有一个子项目叫做 Jenkins X,专门运行一个与 Kubernetes 无缝衔接的开箱即用的 pipeline。Jenkins X 巧妙地集成了 Helm、Jenkins CI/CD 服务器、Kubernetes 以及其它一些工具,来提供一个内置最佳实践的规范的 CI/CD 工具 pipeline,例如使用 GitOps 来管理环境。使用 Jenkins 的一个加分点是,其脚本结构良好、易于理解并且可读性很强。Jenkins 团队已经开发了近 1000 个插件,使得应用程序可以与其它熟悉的技术混合使用。除此之外,还可以使用 Credentials Command 之类的插件。这使得向脚本中添加隐藏的身份验证凭证等变得简单可行。一旦 Jenkins pipeline 开始运行,你还可以验证每个阶段通过与否以及每个阶段的总数。但是,你不能在提供的图形化概览中检查特定作业的状态。你可以做的是跟踪终端中的作业进度。
2. Jenkins 核心特性
Jenkins 以其易于配置、自动化构建过程和它向用户提供的大量文档而闻名。当谈到 DevOps 测试时,Jenkins 被认为是非常可靠的,而且没必要监视整个构建过程,而对于其它 CI/CD 工具则不会这么放心。
让我们看看 Jenkins 提供的一些最重要的特性:
1. 免费、开源且易安装
Jenkins 在 macOS、Unix、Windows 等平台上都非常容易安装。它可以与 Docker 结合,为自动化作业带来更高的一致性和额外的速度。它可以可以作为一个 servlet 运行在 Apache Tomcat 和 GlassFish 这样的 Java 容器中。你可以找到许多支持和文档来指导整个安装过程。
2. 广泛的插件生态系统
这个工具的插件生态系统相比于其它 CI/CD 工具来说更成熟。目前,这个生态系统提供了 1500+ 插件。由于这些插件的范围从特定语言开发工具到构建工具,这使得