• Jenkins Pipeline介绍


    Jenkins Pipeline 简介

    Jenkins pipeline 是 Jenkins 2.0 的精髓,,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。

    简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。

    Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了 Pipeline as Code 的理念。




     Pipeline 的基本概念和 Jenkinsfile

    Pipeline的几个基本概念

    Stage阶段:一个 Pipeline 有多个 Stage 组成,每个 Stage 包含一组 Step。注意一个 Stage
    可以跨多个 Node 执行,即 Stage 实际上是 Step 的逻辑分组。

    Node节点:一个 Node 就是一个 Jenkins 节点,可以是 Master,也可以是 Slave,是 Pipeline
    中具体 Step 的运行环境。

    Step步骤:是基本的运行单元,可以是创建一个目录、从代码库中 checkout 代码、执行
    一个 shell 命令、构建 Docker 镜像、将服务发布到 Kubernetes 集群中。Step 由 Jenkins 
    和 Jenkins 各种插件提供。

    stage阶段怎么理解,一个Jenkinsfile 可以分为一个大的阶段。分为打包、构建、 部署。构建的流程,

    可以分为这几步,获取源代码,然后打包,构建,进行编译,替换配置文件,编译完打包,进行部署 这个阶段就是stage

    step步骤 就是具体的操作 编译里面 先替换配置文件再编译,替换配置文件就是一步,替换另外一个配置文件就是另外一步 ,具体的一步一步的东西就是 

    步骤step,是最小的操作单元。就是这个步骤你要干嘛,每个阶段都有很多步骤

    Jenkinsfile语法

    Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。

    声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明
    式的编程模型,对比脚本式的 Pipeline 学习起来更加简单;

    脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。
    所以我们学习使用声明式的方式编写 jenkinsfile。
    一般来说 jenkinsfile 会被放在代码库的根目录下。

    当然也可以在 Web 页面定义。

    下面是两种不同方式的 jenkinsfile 示例

    Jenkinsfile (声明式)

    pipeline { 
        agent any
        stages { 
            stage('Build') { 
                steps { 
                    echo 'Building..' 
                    } 
                } 
                stage('Test') { 
                    steps { 
                        echo 'Testing..' 
                    } 
                } 
                stage('Deploy') { 
                    steps { 
                        echo 'Deploying....' 
                    } 
                } 
            }
        }

    前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
    紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点

    指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,

    stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,

    stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个

    每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行

    Jenkinsfile( 脚本式 )

    node { 
        stage('Build') { 
            // 
        } 
        stage('Test') { 
            // 
        } 
        stage('Deploy') { 
            // 
        } 
    }

    在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
    定义你的 stage,在 stage 里定义你的 step 即可

  • 相关阅读:
    【转】dip,px,pt,sp 的区别
    JAVA中报错 : org.springframework.beans.factory.BeanCreationException
    ExecuteNonQuery及对比
    ParameterDirection参数类型
    WinForm控件组合使用
    DataGridView控件内实现修改与删除
    DataView筛选绑定
    动态反射
    反射属性名和属性值
    接口与抽象类
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/12790884.html
Copyright © 2020-2023  润新知