管道

本章介绍了Jenkins管道功能的所有推荐方面,包括如何:必威国际有限公司

有关Jenkins用户手册内容的概述,请参阅必威国际有限公司用户手册概述

詹金斯管道是什么必威国际有限公司?

必威国际有限公司Jenkins Pipeline是一套支持实现和集成的插件连续输送管道进入詹金斯必威国际有限公司。

A.连续输送(CD)管道是将软件从版本控制直接传递给用户和客户的过程的自动表达。对软件的每次更改(在源代码管理中承诺)在发布过程中经历了一个复杂的过程。这个过程包括以可靠和可重复的方式构建软件,以及通过多个测试和部署阶段推进构建的软件(称为“构建”)。

管道提供了一组可扩展的工具,通过“代码”对简单到复杂的交付管道进行建模管道域特定语言(DSL)语法[1.]

Jenkins管道的定义被写入一个文本文必威国际有限公司件(称为必威国际有限公司Jenkinsfile),然后可以提交给项目的源代码控制存储库。[2.]这是“按”管道 - 以代码“的基础;将CD管道处理应用程序的一部分是版本化的并审核,如任何其他代码。

创建一个必威国际有限公司Jenkinsfile将其提交到源代码管理中可以立即带来许多好处:

  • 自动为所有分支和拉取请求创建一个管道构建过程。

  • 管道上的代码审查/迭代(以及其余源代码)。

  • 管道的审计跟踪。

  • 真理的单一来源[3.],可以由项目的多个成员查看和编辑。

而定义管道的语法,无论是在web UI或与必威国际有限公司Jenkinsfile同样,通常认为最佳实践是在必威国际有限公司Jenkinsfile然后把它提交给源代码控制。

声明性与脚本化管道语法

A.必威国际有限公司Jenkinsfile可以使用两种类型的语法编写——声明式语法和脚本式语法。

声明式管道和脚本式管道的构造完全不同。声明式管道是Jenkins管道的最新特性:必威国际有限公司

  • 提供了比脚本化管道语法更丰富的语法特性

  • 旨在使编写和读取管道代码更容易。

许多单独的语法成分(或“步骤”)写进必威国际有限公司Jenkinsfile,但是,对于声明式管道和脚本式管道都是通用的。阅读更多关于这两种语法的区别管道概念管道语法概述在下面

为什么是管道?

必威国际有限公司从根本上说,Jenkins是一个支持许多自动化模式的自动化引擎。Pipeline为Jenkins添加了一组强大的自动化工具,支持从简单的持续集成到全面的CD管道的用例。必威国际有限公司通过对一系列相关任务建模,用户可以利用Pipeline的许多特性:

  • 密码:管道在代码中实施,通常签入源控制,使团队能够编辑,审查和迭代其交付管道。

  • 耐用的:管道可以在Jenkins控制器的计划内和计划外重启后继续运行。必威国际有限公司

  • Pausable:管道可以选择在继续管道运行之前停止并等待人工输入或批准。

  • 多才多艺的:管道支持复杂的真实CD需求,包括并行分叉/连接、循环和执行工作的能力。

  • 可伸缩:管道插件支持其DSL的自定义扩展[1.]以及与其他插件集成的多种选项。

虽然詹金斯一必威国际有限公司直允许基本形式的自由式工作链接在一起,以执行顺序任务,[4.]Pipeline使这个概念在Jenkins中成为一流的公民。必威国际有限公司

基于Jenkins可扩展性的核心价值,管道必威国际有限公司也可以由用户进行扩展管道共享库以及插件开发者。[5.]

下面的流程图是在Jenkins Pipeline中很容易建模的一个CD场景示例:必威国际有限公司

管道流量

管道概念

以下概念是Jenkins管道的关键方面,它们与管道语法密切相关(参见必威国际有限公司概述以下)。

管道

管道是CD管道的用户定义模型。Pipeline的代码定义了整个构建过程,通常包括构建应用程序、测试应用程序和交付应用程序的阶段。

同样,一个管道块是A.声明性管道语法的关键部分

节点

节点是一台机器,它是Jenkins环境的一部分,能够执行流水线。必威国际有限公司

同样,一个节点块是A.脚本管道语法的关键部分

阶段

A.阶段block定义了通过整个管道(例如“构建”、“测试”和“部署”阶段)执行的任务的概念上不同的子集,许多插件使用该子集来可视化或显示Jenkins管道状态/进度。必威国际有限公司[6.]

一项任务。基本上,一步告诉詹金斯必威国际有限公司什么在特定的时间点(或过程中的“步骤”)做某事。例如,执行shell命令制作使用步骤:sh'make'.当插件扩展管道DSL时,[1.]这通常意味着插件已经实现了一个新的一步

管道语法概述

以下管道代码框架说明了声明性管道语法脚本化管道语法

需要注意的是阶段脚步(上面)是声明式管道语法和脚本式管道语法的共同元素。

声明式管道基础

在声明式管道语法中管道块定义了整个管道中完成的所有工作。

必威国际有限公司Jenkinsfile(声明式管道)
管道{代理人(1)阶段{阶段('构建') {(2)台阶{//(3)}}阶段('测验') {(4)台阶{//(5)}}阶段('部署') {(6)台阶{//(7)}}}}}
1. 在任何可用的代理上执行此管道或其任何阶段。
2. 定义“构建”阶段。
3. 执行与“构建”阶段相关的一些步骤。
4. 定义“测试”阶段。
5. 执行一些与“测试”阶段相关的步骤。
6. 定义“部署”阶段。
7. 执行与“部署”阶段相关的一些步骤。

脚本化管线基础知识

在脚本化管道语法中,一个或多个节点块在整个管道中执行核心工作。尽管这不是脚本化管道语法的强制要求,但将您的管道工作限制在节点块有两件事:

  1. 通过向Jenkins队列添加一个项来调度包含在块中的步骤。必威国际有限公司一旦节点上的执行器空闲,这些步骤就会运行。

  2. 创建一个工作区(特定于特定管道的目录),可以在其中对从源代码管理签出的文件执行工作。
    警告:根据您的Jenkins配置,在不活动必威国际有限公司时期,某些工作区可能不会自动清理。查看票据和讨论链接的票据必威国际有限公司詹金斯- 2111为更多的信息。

必威国际有限公司Jenkins文件(脚本化管道)
节点{(1)舞台('构建') {(2)//(3)}阶段('测验') {(4)//(5)}阶段('部署') {(6)//(7)}}
1. 在任何可用的代理上执行此管道或其任何阶段。
2. 定义“构建”阶段。阶段在脚本化管道语法中,块是可选的阶段脚本化管道中的块提供了Jenkins UI中每个“阶段”任务/步骤子集的更清晰可视化。必威国际有限公司
3. 执行与“构建”阶段相关的一些步骤。
4. 定义“测试”阶段。
5. 执行一些与“测试”阶段相关的步骤。
6. 定义“部署”阶段。
7. 执行与“部署”阶段相关的一些步骤。

管道示例

这里有一个例子必威国际有限公司Jenkinsfile使用声明性流水线语法 - 可以通过单击“可通过单击其脚本语法等同物切换脚本化管道下方链接:

必威国际有限公司Jenkinsfile(声明式管道)
管道{(1)任何代理人(2)选项{skipStagesAfterUnstable()}stages{stage('构建') {(3)台阶{(4)'制作'(5)}}阶段('测验'){步骤{sh'做检查'朱尼特'报告/***/.xml'(6)}}阶段('部署'){步骤{sh'发布'}}}}}
切换脚本化管道 (高级)
1. 管道是特定于管道的声明式语法,它定义了一个“块”,其中包含用于执行整个管道的所有内容和指令。
2. 代理人是特定于管道的声明式语法,它指示Jenkins为整个管道分配一个执行器(在一个节点上)和工作区。必威国际有限公司
3. 阶段是一个描述a的语法块这条管道的第二阶段.了解更多关于阶段上的声明性管道语法中的块管道语法页面。正如前面提到的在上面,阶段在脚本化管道语法中,块是可选的。
4. 脚步描述在此运行的步骤的声明式管道特定语法阶段
5. 是一个管道一步(由管道:节点和进程插件)来执行给定的shell命令。
6. 朱尼特是另一个管道一步(由JUNIT插件)以聚合测试报告。
7. 节点是特定于管道的Scripted语法,它指示Jenkins在任何可用的代理/节点上执行这个管道(以及其中包必威国际有限公司含的任何阶段)。这实际上等于代理人在声明性管道特定语法中。

有关管道语法的更多信息,请参阅管道的语法页面。


4.。其他插件已被用于利用自由式作业实现复杂行为,如复制工件、参数化触发器和升级版本插件


这个页面有用吗?

请通过这个提交你对这个页面的反馈快速形成

或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?


查看现有的反馈这里