流水线自动构建和测试代码项目以使其可供他人使用,并且几乎可以使用任何编程语言或项目类型。
管道不仅帮助开发人员使代码更易于管理和部署。它们还为开发人员节省了大量时间。通过管道,开发人员可以在 20 分钟或更短的时间内构建 IDE,并将他们的代码放入经过优化以在现代操作系统上运行的 IDE。
在本文中,我们将逐步了解构建 Jenkins CI/CD 管道的过程。此外,我们将使用 jQuery UI 库构建一个 Web 应用程序。jQuery UI 是一个现代 Web UI 框架,使我们能够创建移动 Web 体验。
我们还将使用 IndexedDB 存储框架来存储数据、查询数据并轻松更新数据,而不会弄乱我们的
Javascript
什么是 CI/CD 管道?
术语“CI/CD 管道”是指持续集成/持续交付管道。在深入探讨这一领域之前,让我们首先了解“管道”一词的含义。
管道是一个概念,它引入了一系列事件或任务,这些事件或任务按顺序连接以快速发布软件。例如,有一个任务,该任务有五个不同的阶段,每个阶段都有几个步骤。第一阶段的所有步骤都必须完成,以标记后一阶段完成。
现在,将 CI/CD 管道视为 DevOps 方法的支柱。该管道负责构建代码、运行测试和部署新的软件版本。Pipeline 以定义的方式执行作业,首先对其进行编码,然后在可能包含多个步骤或任务的几个块中对其进行结构化。
在我们告诉你如何使用Jenkins构建这个 CI/CD 管道之前,让我们研究一下这两个术语的简要含义:持续集成和持续交付。
什么是持续集成 (CI)?
持续集成是将代码集成到共享存储库中的一种实践。它使用自动验证来及早发现问题。持续集成不会消除错误,但有助于快速发现和删除它们。
什么是持续交付 (CD)?
持续交付()是在部署之前对代码进行更改的阶段。此阶段的团队决定将什么部署给客户以及何时部署。管道的最终目标是进行部署。
当这两种实践结合在一起时,所有步骤都被认为是自动化的,从而产生了我们称为 CI/CD 的过程。CI/CD 的实施使团队能够快速有效地部署代码。这个过程使团队更加敏捷、高效和自信。
Jenkins 是最常用于 CI/CD 管道的 DevOps 工具。因此,我们必须了解一下 Jenkins 的基础知识,并了解为什么它是构建这条管道的最受欢迎的工具。
CI/CD 管道安全的最佳实践
DevOps 带有自己的一组安全风险,因此拥有一组最佳实践非常重要。这些包括:
- 为更敏感的系统和工具使用一次性密码
- 使用密码管理器并在每次使用后轮换密码
- 从 CI/CD 配置文件和 Jenkins 文件中取出所有硬编码的秘密
- 确保在构建 CI/CD 管道中发生的拉取请求期间不会意外传递秘密
- 遵循最小特权的做法。这意味着只允许访问必要的秘密,除此之外什么都没有。这种做法适用于需要权限或特权才能执行某些任务的应用程序、员工访问、系统和连接的设备。
- 使用身份验证措施确认机器身份
- 跟踪谁有权访问哪些资源。创建一个清晰的访问管理存储库,无论它是基于任务、基于时间还是基于角色。
- 在 Jenkinsfiles 之间分配秘密以降低文件受到攻击的风险
- 在将应用程序部署到生产环境之前,扫描脚本构建并定期监控源代码中的漏洞
什么是詹金斯?
Jenkins是一个用于构建和测试软件项目的开源自动化工具。该工具使开发人员可以更方便地将更改集成到项目中。Jenkins 借助插件实现了持续集成。
Jenkins 恰好是构建 CI/CD 管道的最佳选择,因为它具有灵活性、开放性、插件功能和易用性。
使用 Jenkins 构建 CI/CD 流水线
使用 Jenkins 构建管道有六个步骤。但是,在开始这六个步骤之前,请确保您的系统中有以下内容。
- Java 开发工具包
- 执行一些基本 Linux 命令的知识
使用 Jenkins 构建 CI/CD 管道的步骤是:
1. 下载詹金斯
- 从 Jenkins 下载页面“ https://www.jenkins.io/download/ ”下载 Jenkins。
- 下载文件“通用 Java 包 (.war)”。
2. 将 Jenkins 作为 Java 二进制文件执行
- 打开终端窗口并输入 cd <您的路径>。
- 使用命令 java –jar ./Jenkins。war 运行 WAR 文件。
3. 创建 Jenkins 作业
- 打开网络浏览器并打开 localhost:8080。
- Jenkins 仪表板打开在那里创建新工作。
4. 创建管道作业
- 选择并定义要创建的 Jenkins 作业。
- 选择管道,为其命名,然后单击确定。
- 向下滚动并找到管道部分。
- 直接编写流水线脚本或从 SCM(源代码管理)检索 Jenkins 文件。
5. 使用直接脚本配置和执行管道作业
- 选择 Pipeline script 作为 Destination,然后将 Jenkins 文件内容粘贴到来自 GitHub 的 Script 中。
- 单击保存以保留更改。
- 现在单击立即构建以处理构建。
- 要检查输出,请单击任何阶段并单击日志;屏幕上将出现一条消息。
6. 使用 SCM 配置和执行管道
- 通过单击克隆或下载来复制现在,单击配置以修改现有作业。
- 滚动到 Advanced Project Options 设置并从 SCM 选项中选择 Pipeline script。
- 在此处粘贴 GitHub 存储库 URL。
- 在脚本中键入 Jenkinsfile,然后单击保存按钮。
- 接下来,单击立即构建以再次执行作业。
- 在这种情况下,将有一个额外的阶段,即声明:结帐 SCM。
- 单击任何阶段,然后单击日志。
在您掌握了使用 Jenkins 构建 CI/CD 管道的所有基本步骤之后,动手演示将起到锦上添花的作用。
转到您的 Jenkins 门户:
- 点击“创建工作”。
- 在项目名称对话框中,您可以输入“管道”。
- 在下面的列表中选择管道作业类型。
- 单击确定。
与管道相关的配置将在屏幕上打开。
- 在该页面上向下滚动。
- 在对话框中,选择 GitHub+Maven。
屏幕上会出现一些步骤。下一步是将 Jenkins 文件集成到版本控制系统中。
因此,要做到这一点,您必须:
- 选择“来自 SCM 的管道脚本”。
- 然后在 SCM 对话框中,选择 Git。
- “Jenkins 文件”是脚本的名称。
- 添加 Git 存储库 URL。
- 您可以添加凭据(如果有)。
可以在“添加”选项的帮助下添加凭据。
- 然后保存配置
现在屏幕上会出现一个页面,为您提供各种选项,例如“立即构建”、“删除管道”、“配置”等。
- 单击立即构建选项。
管道将开始下载。结帐将在屏幕上可见,您可以在屏幕上看到构建完成。
您可以转到控制台输出选项以检查正在发生的日志。
您很快就能看到管道的所有部分都已完成。该工件将出现以供下载。可以使用该链接下载战争文件。
整个过程帮助我们了解整个 Pipeline 是如何配置的。使用类似类型的步骤,可以配置不同类型的自动化管道。
为 jQuery UI Web 应用程序使用 CI/CD 管道和 IndexedDB
使用一个简单的PostgreSQL数据库,我们将在 IndexedDB 存储中存储一些客户端数据。这种技术可以成为在浏览器中存储一些数据的方便且强大的解决方案。
使用 IndexedDB 是用于存储和查询客户端数据的文档对象模型 (DOM) 的更好替代方案,因为它可以轻松管理和查询数据。让我们开始我们的项目。
创建新项目
首先,在新目录中为我们的项目创建一个新目录并运行以下命令:
很热
您应该会看到如下内容:
$ mkdir jquery-ui-pipeline-demo $ cd jquery-ui-pipeline-demo $ bin/pipeline create
“Pipeline create”命令让您指定将在其中构建和测试代码的模板。这种方法就像编织者如何使用纱线,但在我们的例子中,我们使用的是网络工具带而不是纱线。
唯一的区别是您不需要使用自己的构建环境来运行测试。Web 工具带会自动为您执行此操作。
这就是创建新项目所需要做的一切。
使用管道构建 jQuery UI Web 应用程序
要使用管道构建您的示例应用程序,我们将打开一个新的终端窗口并输入:
$ bin/管道构建
此命令将需要一段时间,因为它正在我们的本地开发机器上构建和测试应用程序。
构建过程完成后,您可以看到完成的项目存储在我们的 index.html 文件中。我们可以在其他应用程序中使用这些文件,甚至可以将应用程序部署到服务器上进行测试。
概括
希望您现在熟悉管道的概念,并且可以看到它们在使用 Web 时所具有的优势。管道允许您专注于应用程序和业务逻辑,而工具处理其余部分。