什么是流水线(Jenkins之流水线介绍)

什么是流水线(Jenkins之流水线介绍)

什么是装配线(詹金斯装配线介绍)

什么是装配线?

现实中的流水线

流水线很好理解。类比现实生活中的生产线,每道工序只做一件事。这些过程由传送带连接在一起,一个过程完成后的结果移交给后续过程进一步操作。

詹金斯对装配线的简单认知

詹金斯的管道以同样的方式工作。最简单的认知就是它可以像胶水一样把几个常见的Shell脚本连接起来。这个比喻虽然形象,但只是管道的冰山一角。

詹金斯管道的两种形式

在Jenkins升级2.x版本之前,只有一个脚本管道。升级2.x版时,添加了声明性管道。

什么是Jenkinsfile

无论是哪种管道,都需要为管道定义一个管道脚本,这个脚本叫做Jenkinsfile,用Groovy语法编写。

脚本管道

在解释声明式管道之前,有必要了解一下脚本式管道的基本概念,这样才能知道声明式管道的优势和脚本式管道的局限性。

特性

在脚本管道语法中,一个或多个节点块执行整个管道中的核心工作。

限制

尽管这不是脚本化管道语法的强制要求,但它限制了节点块中的管道只能做两件事:

您需要向Jenkins队列中添加一个项目,以计划块中包含的步骤。一旦节点上的执行器空闲空,该步骤就会运行。

创建一个工作区(专门为特定管道建立的目录),在其中可以对从源代码控制中签出的文件进行操作。

基础语法

Jenkinsfile(脚本管道)

node { //需要有一个或多个node节点表示一系列操作    stage(\'Build\') { //每个stage表示一个步骤        // Build步骤内容    }    stage(\'Test\') {         //  Test步骤内容    }    stage(\'Deploy\') {         //  Deploy步骤内容    }}

声明式管道的基本语法类似于脚本式管道,但其功能更强大。

声明性管道基础

特性

声明性管道的最外层Jenkinsfile脚本节点是pipeline。

不同于脚本管道

声明式管道和脚本式管道有着本质的不同。声明式管道是Jenkins管道的最新功能:

与脚本管道语法相比,它提供了更丰富的语法功能,

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

基础语法

Jenkinsfile(声明性管道)

pipeline { // pipeline是声明式流水线的一种特定语法,在块内定义了整个流水线的所有内容    agent any //    agent是声明式流水线的一种特定语法,它指示 Jenkins 为整个流水线分配一个执行器 (在节点上)和工作区,等效于脚本式流水线node块    stages { // 所有流程(状态)的外层块,仅有一个        stage(\'Build\') { //每个stage为一流程,与脚本式基本一致,每个stage可以定义名称            steps {  //步骤块,内部包含具体操作                sh \'make\'  // sh操作,其引号间的文字会当成shell直接执行            }        }        stage(\'Test\'){            steps {                sh \'make check\'                junit \'reports/**/*.xml\'  //junit使用匹配的定义测试xml进行单元测试            }        }        stage(\'Deploy\') {            steps {                sh \'make publish\'            }        }    }}

使用jenkins的Blue Ocean插件运行构建:

Jenkinsfiles文件:

以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~