Jenkins Pipeline 教程:如何创建 JenkinsFile(示例)

什么是 Jenkins Pipeline?

詹金斯管道 是支持集成和实施持续交付管道的插件组合。它具有可扩展的自动化服务器,可通过管道 DSL 将简单和复杂的交付管道创建为代码。管道是一组按顺序相互链接的事件。

什么是持续交付管道?它是如何工作的?

在 Jenkins 管道中,每个作业或事件都对至少一个或多个事件有某种依赖性。

Jenkins 持续交付管道的工作原理
Jenkins 持续交付管道的工作原理

上图表示 Jenkins 中的持续交付流水线。它包含一组状态,称为构建、部署、测试和发布。这些事件相互关联。每个状态都有其事件,它们按称为持续交付流水线的顺序工作。

持续交付管道是一种自动化表达,用于显示获取软件进行版本控制的过程。因此,软件中所做的每项更改在发布之前都要经过许多复杂的过程。它还涉及以可靠和可重复的方式开发软件,以及通过多个阶段推进构建的软件 测试 和部署。

什么是 JenkinsFile?

Jenkins 管道可以使用名为 Jenkins文件。 您可以使用 JenkinsFile 将管道实现为代码,并且可以使用领域特定语言 (DSL) 来定义。使用 JenkinsFile,您可以编写运行 Jenkins 管道所需的步骤。

使用的好处 JenkinsFile 是:

  • 您可以自动为所有分支创建管道,并且只需一个即可执行拉取请求 Jenkins文件。
  • 您可以在管道上检查您的 Jenkins 代码
  • 您可以审计您的 Jenkins 管道
  • 这是您的管道的唯一来源,可以由多个用户修改。

JenkinsFile 可以通过 Web UI 或 Jenkins 文件定义。

声明式与脚本式管道语法:

有两种类型的 Jenkins 管道语法用于定义 JenkinsFile。

  1. 陈述式
  2. 脚本化

声明:

声明式管道语法提供了一种创建管道的简单方法。它包含一个用于创建 Jenkins 管道的预定义层次结构。它使您能够以简单、直接的方式控制管道执行的所有方面。

脚本:

脚本化的 Jenkins 流水线在轻量级执行器的帮助下在 Jenkins 主服务器上运行。它使用很少的资源将流水线转换为原子命令。声明式和脚本式语法彼此不同,并且定义完全不同。

为什么要使用 Jenkin 的管道?

Jenkins 是一个开放 持续集成服务器 它能够支持软件开发流程的自动化。您可以借助用例创建多个自动化作业,并将它们作为 Jenkins 管道运行。

以下是您应该使用 Jenkins 管道的原因:

  • Jenkins 管道以代码的形式实现,允许多个用户编辑和执行管道流程。
  • 管道非常强大。因此,如果您的服务器发生意外重启,管道将自动恢复。
  • 您可以暂停管道进程并让其等待直到有用户输入后再恢复。
  • Jenkins Pipelines 支持大型项目。您可以运行多个作业,甚至可以循环使用管道。

詹金斯管道 Concepts

按揭年数 描述
管道 流水线是一套以代码形式给出的持续交付指令,包含整个构建过程所需的指令。通过流水线,您可以构建、测试和交付应用程序。
Node Jenkins 运行的机器称为节点。节点块主要用于脚本化管道语法。
阶段 阶段块包含管道中的一系列步骤。也就是说,构建、测试和部署过程都集中在一个阶段中。通常,阶段块用于可视化 Jenkins 管道过程。
步骤 步骤不过是在规定时间执行特定流程的单个任务。管道涉及一系列步骤。

在 Jenkins 中安装 Build Pipeline 插件

随着 构建管道 插件,您可以创建传入和传出作业的管道视图,并创建需要手动干预的触发器。

安装方法如下 构建管道 在你的 Jenkins 中插件:

步骤1)插件的设置可以在以下位置找到,

管理 Jenkins > 管理插件。

在 Jenkins 中安装 Build Pipeline 插件

如果您已经安装了该插件,它将显示在已安装选项卡下。

在 Jenkins 中安装 Build Pipeline 插件

步骤2)如果您之前没有安装该插件,

它出现在 可提供 标签。

成功安装后 构建管道 在您的 Jenkins 插件中,按照以下步骤创建您的 Jenkins 管道:

如何创建 Jenkins 管道

登录到 Jenkins 仪表板后:

步骤1)点击 “+” 单击 Jenkins 仪表板左侧的按钮来创建管道。

创建 Jenkins 管道

步骤2)

  1. 系统将要求您为管道视图命名。我们将其命名为“Guru99 管道” 在本演示期间。
  2. 选择 构建管道视图 选项
  3. 点击 ok

创建 Jenkins 管道

步骤3)在下一页中,您将被要求提供更多详细信息以配置您的 Jenkins 管道。只需接受默认设置,并确保在设置下选择第一个作业。

点击 入学申请 然后 OK.

创建 Jenkins 管道

这将显示您的项目的示例管道视图,如下所示:

创建 Jenkins 管道

运行管道构建

步骤1) 要运行管道构建,您需要先链接您的作业。为此,请转到您的第一个作业并单击配置。

运行管道构建

步骤2)现在,在 建立触发器, 检查 在其他项目构建后进行构建 选项。

运行管道构建

这样,您所有工作的链条就创建好了。

步骤3)安装 构建管道视图 插件(如果尚未安装)。

步骤4)转到您的 Jenkins 仪表板并单击“+”按钮。选择 构建管道视图 选项并单击 OK.

运行管道构建

步骤5) 在下面 管道视图配置,找到 管道流量.

管道流量,选择要运行的初始作业。现在选择与其他作业有链的作业,如下所示 步骤1步骤2.

运行管道构建

这里我们选择了 Guru99 项目 1 作为初始作业,与其他作业链接。因此,作业将一个接一个地在管道中运行。

当 Jenkins 管道运行时,您可以借助红色和绿色状态符号检查其状态。红色表示管道失败,而绿色表示成功。

在这个 Jenkins 流水线示例中,我们看到按钮是绿色的。因此,流水线成功了。

运行管道构建

运行 Jenkins 管道

点击 运行 运行 Jenkins 管道。它看起来会像这样:

运行 Jenkins 管道

在上面的 Jenkins 管道脚本示例中,我们演示了一个简单的“helloworld.java”程序。但在实时项目中,您将负责在 Jenkins 中创建和构建复杂的管道。请参阅下面的示例管道视图。

运行 Jenkins 管道

使用 Jenkins Pipeline 的最佳实践:

  • 使用正版 Jenkins Pipeline
  • 以代码形式开发您的管道
  • 管道中的任何非设置工作都应在阶段块内进行。
  • 管道中的任何实质工作都必须在节点块内执行。
  • 不要在节点块内使用输入。
  • 切勿使用 env 全局变量设置环境变量
  • 将输入包装在超时中