Jenkinsfile

IT
IT
IT
405
文章
1
评论
2020年8月10日16:19:35 评论 4,319 1458字阅读4分51秒

为什么使用pipeline?

本质上,jenkins是一个自动化引擎,它支持许多自动模式。流水线向Jenkins添加了一组强大的工具,支持用例、简单的持续集成到全面的持续交付流水线。 通过对一系列的发布任务建立标准的模板,用户可以利用更多流水线的特性,比如:

  • 代码化: 流水线是在代码中实现的,通常会存放到源代码控制,使团队具有编辑、审查和更新他们项目的交付流水线的能力。
  • 耐用性:流水线可以从Jenkins的master节点重启后继续运行。
  • 可暂停的:流水线可以由人功输入或批准继续执行流水线。
  • 解决复杂发布: 支持复杂的交付流程。例如循环、并行执行。
  • 可扩展性: 支持扩展DSL和其他插件集成。

构建一个可扩展是Jenkins的核心价值,流水线可以通过ShareLibrary的方式来扩展。

pipeline定义

关于Jenkins流水线的运行我们可以抽象一下,例如:可以把流水线(pipeline)想象成13号线地铁,把流水线的阶段(stage)想象成地铁的每一个站点,把流水线脚本(jenkinsfile)想象成地铁线路图。这就是流水线的多样性,每条线路都有不同的站点。

Jenkinsfile

现在地铁(Jenkins)已经有了,我们需要设计地铁的运行线路图(Jenkinsfile),在线路图中指定要经过的站点(stages)。这下你是否已经知道我们要运行一条流水线,需要先做什么呢? –编写jenkinsfile

Pipeline

  • Jenkins的Pipeline通过Jenkinsfile进行描述(类似于Dockerfile)
  • Jenkinsfile是Jenkins的特性(pipeline as code)
  • Pipeline是Jenkins的核心功能,提供一组可扩展的工具。
  • 通过Pipeline 的DSL语法可以完成从简单到复杂的交付流水线实现。

Jenkinsfile

  • Jenkinsfile使用两种语法进行编写,分别是声明式和脚本式。
  • 声明式和脚本式的流水线从根本上是不同的。
  • 声明式是jenkins流水线更友好的特性。
  • 脚本式的流水线语法,提供更丰富的语法特性。
  • 声明式流水线使编写和读取流水线代码更容易设计。

pipeline演示

来我们一起看下这里的配置,看下Jenkinsfile的组成及每个部分的功能含义。

  • 使用agent{},指定node节点/workspace(定义好此流水线在某节点运行)
  • 指定options{}运行选项(定义好此流水线运行时的一些选项,例如输出日志的时间)
  • 指定stages{}(stages包含多个stage,stage包含steps。是流水线的每个步骤)
  • 指定post{}(定义好此流水线运行成功或者失败后,根据状态做一些任务)
pipeline{
//指定运行此流水线的节点
agent { node { label "build"}}
    

//流水线的阶段
stages{

    //阶段1 获取代码
    stage("CheckOut"){
        steps{
            script{
                println("获取代码")
            }
        }
    }
    stage("Build"){
        steps{
            script{
                println("运行构建")
            }
        }
    }
}
post {
    always{
        script{
            println("流水线结束后,经常做的事情")
        }
    }
        
    success{
        script{
            println("流水线成功后,要做的事情")
        }
        
    }
    failure{
        script{
            println("流水线失败后,要做的事情")
        }
    }
        
    aborted{
        script{
            println("流水线取消后,要做的事情")
        }
        
    }
}
}

Jenkinsfile

  • 开始构建

Jenkinsfile

Jenkinsfile

  • 为了美观,安装BlueOcean插件

Jenkinsfile

  • 骚气一下

Jenkinsfile

Jenkinsfile

Jenkinsfile

继续阅读
  • 我的QQ
  • QQ扫一扫
  • weinxin
  • 我的头条
  • 头条扫一扫
  • weinxin
IT
  • 本文由 发表于 2020年8月10日16:19:35
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
JenkinsLibrary Jenkins-pipeline

JenkinsLibrary

Jenkins共享库应用 概述 共享库这并不是一个全新的概念,其实具有编程能力的同学应该清楚一些。例如在编程语言Python中,我们可以将Python代码写到一个文件中,当代码数量增加,我们可以将代码...
Jenkins流水线语法 Jenkins-pipeline

Jenkins流水线语法

声明式流水线 声明式Pipleine是官方推荐的语法,声明式语法更加简洁。所有的声明式Pipeline都必须包含一个 pipeline块中,比如: pipeline { //run } 在声明式Pip...

您必须才能发表评论!