Jenkins的Pipeline流水线

目录

前言

流水线概念

什么是流水线

Jenkins流水线

pipeline

node

stage

step

创建一个简单的流水线

创建Pipeline项目

选择模板

测试


前言

        提到 CI 工具,首先想到的就是“CI 界”的大佬——Jenkjns,虽然在云原生爆发的年代,蹦出来了很多云原生的 CI 工具,但是都不足以撼动 Jenkins 的地位。在企业中对于持续集成、持续部署的需求非常多,并且也会经常有-些比较复杂的需求,此时新生的 CI 工具不足以支撑这些很复杂的需求。但是 Jenkins丰富的插件基本上可以满足任何场景。

流水线概念

什么是流水线

        Jenkins 流 水 线 是 一 套 插 件 , 它 支 持 在 Jenkins 中 实 现 和 集 成 持 续 交 付 流 水 线(ContinuousDeliveryPipeline)。流水线提供了一组可扩展的工具,用于通过 Pipeline DSL 将简单到复杂的交付流水线以代码的形势展现,类似于基础设施即代码。

        持续交付流水线会经历一个复杂的过程:从版本控制、向用户和客户提交软件、软件的每次变更(提交代码到仓库)到软件发布(Release)。这个过程包括以一种可靠并可重复的方式构建软件,以及通过多个测试和部署阶段来开发构建好的软件(称为 Build)。

        Jenkins 流水线的定义被写在一个文本文件中(一般为 Jenkinshle),该文件“定制”了整个构建软件的过程. Jenkinsfile 也可以被提交到项目的代码仓库中,在 Jenkjns 中可以直接引用。将持续交付流水线作为应用程序的一部分,像其他代码一样进行版本化和审查,这是流水线即代码的基础。

创建 Jenkinsfile 并提交到代码仓库中的好处如下:

  • 自动为所有分支创建流水线构建过程。
  • 在流水线上进行代码复查/迭代。
  • 对流水线进行审计跟踪。
  • 流水线的代码可以被项目的多个成员查看和编辑。
  • 可以对 Jenkinsfile 进行版本控制。

Jenkins流水线

        Jenkins 流水线主要分为声明式分和脚本式两种,包含 pipline(流水线)、node(节点)、stage(阶段)、step(步骤)等区块。

pipeline

        pipeline 是用户定义的一个持续交付(CD)流水线模型。流水线的代码定义了整个构建过程,包括构建、测试和交付应用程序的阶段。另外,pipeline 块是声明式流水线语法的关键部分。

node

        node 是—个机器,它是 Jenkins 环境的-部分,另外,node 块是脚本化流水线语法的关键部分。

stage

        stage 块定义了在整个流水线的执行任务中概念不同的子集(比如 Bujld、Test、Deploy 阶段),它被许多插件用于可视化 Jenkins 流水线当前的状态/进展。

step

        本质上是指通过一个单一的任务告诉 Jenkins 在特定的时间点需要做什么,比如要执行 shell 命令,可以使用 sh SHELL_COMMAND。其运行里程如下图所示:

        从上文可以了解,Jenkins 流水线分为脚本式和声明式,而声明式是“新一代”的流水线, 比脚本式更加灵活,可读性更强,并且声明式流水线支持以图形化的方式进行编辑,所以声明式流水线是着重学习的对象。

创建一个简单的流水线

创建Pipeline项目

选择模板

在定义中选择“Pipline script”,模板使用“Hello World”

  • stages:代表整个流水线的所有执行阶段。通常 stages 只有 1 个,里面包含多个 stage
  • stage:代表流水线中的某个阶段,可能出现 n 个。一般分为拉取代码,编译构建,部署等阶段。
  • steps:代表一个阶段内需要执行的逻辑。steps 里面是 shell 脚本,git 拉取代码,ssh 远程发布等任意内容。

agent 指定了流水线的执行节点。

参数:

  • any 在任何可用的节点上执行 pipeline。
  • none 没有指定 agent 的时候默认。
  • label 在指定标签上的节点上运行 Pipeline。
  • node 允许额外的选项。

根据流水线或阶段的完成情况而运行(取决于流水线中 post 部分的位置).

post 支持以下post-condition 块中的其中之一: always, changed, failure, success, unstable, 和 aborted。这些条件块允许在 post 部分的步骤的执行取决于流水线或阶段的完成状态。

  • always 无论流水线或者阶段的完成状态。
  • changed 只有当流水线或者阶段完成状态与之前不同时。
  • failure 只有当流水线或者阶段状态为”failure”运行。
  • success 只有当流水线或者阶段状态为”success”运行。
  • unstable 只有当流水线或者阶段状态为”unstable”运行。例如:测试失败。
pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }

    post {
        always {
            echo 'I will always say Hello again!'
        }
    }
}

测试

  • 33
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>Jenkins流水线Pipeline)是一种基于脚本的持续集成和交付工具,它可以通过编写脚本来定义整个构建过程,包括构建、测试、打包、部署等环节。Pipeline可以帮助团队更好地管理和控制软件开发过程,提高开发效率和质量。同时,Pipeline还支持可视化的界面,方便用户查看和管理构建过程。 <h3>回答2:</h3><br/>Jenkins流水线Pipeline是一种自动化工具,它允许用户在Jenkins中创建、测试和部署软件的过程。 Pipeline可以通过定义该过程的阶段和任务来帮助用户更好地管理软件开发项目的生命周期。Pipeline支持多种编程语言,包括Java、Python和Ruby等。 Pipeline的基本单元是阶段。每个阶段定义了软件开发流程中的一组操作,例如拉取代码、运行单元测试、构建和部署软件等。 在Pipeline中,阶段是由任务组成的。任务表示可执行的操作,例如运行shell脚本、调用Jenkins插件或编译代码等。 Pipeline通过Jenkinsfile文件来定义软件开发过程。Jenkinsfile是一个Groovy脚本,它描述了软件开发阶段和任务的结构、依赖关系和输入输出。 Pipeline的一个显著特点是它可以支持持续交付和持续集成。持续交付指的是在软件生命周期中自动构建、测试和部署软件的过程,以便在任何时候可以将代码快速交付到生产环境中。持续集成指在代码库中提交新代码时自动构建和测试已有代码的过程,以便尽早发现潜在的问题和错误。 总之,PipelineJenkins中的一个强大的工具,可以帮助您更好地管理软件开发项目的生命周期。它通过定义软件开发过程中的阶段和任务,支持持续交付和持续集成,并以Jenkinsfile作为描述文件,可以方便地管理和维护软件开发过程。 <h3>回答3:</h3><br/>Jenkins是一款开源的自动化构建工具,它提供了丰富的插件来支持不同的构建方式和工具。其中流水线Pipeline插件是Jenkins的核心插件之一,它提供了一种声明式的DSL语言来实现复杂的连续构建流程和自动化测试。 Pipeline的概念是Jenkins提供的一个全新的构建方式,它允许用户定义完整的构建流程,从代码的检出到构建、测试和部署。和传统的构建方式不同,Pipeline通过将整个构建流程视为一个整体,提供了更多的自定义和可编程性。 Pipeline有两种实现方式,一种是基于Scripted Pipeline,另一种是基于Declarative Pipeline。Scripted Pipeline允许用户使用Groovy脚本来编写自己的构建流程,而Declarative Pipeline则提供了一种更加声明式的方式来定义构建流程。 Pipeline的核心是Stage和Step。Stage表示构建流程中的一个阶段,每个Stage实际上是一个具有清晰定义作用域的语句块,Step则是在Stage中执行的具体操作,常见的操作包括代码检出、编译、测试和部署等。用户可以根据自己的需求自由组合Stage和Step来构建自己的连续集成流水线Pipeline的优势在于其可扩展性和可重用性,用户可以通过自定义插件来扩展支持自己的构建工具和流程,也可以通过将常用的构建模板抽象出来来提高构建流程的可重用性,从而提高整个团队的效率。 综上所述,JenkinsPipeline插件为用户提供了一种全新的连续构建流程实现方式,让构建流程更加灵活和可控。它能够高效地管理构建流程的各个阶段,提高团队的协作效率,从而为项目的成功交付做出重要贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值