首页 > 其他分享 >Jenkins实践指南-01-pipeline概述

Jenkins实践指南-01-pipeline概述

时间:2022-12-05 00:00:10浏览次数:48  
标签:pipeline 01 代码 echo 语法 Jenkins stage

1.pipeline概述

1.1 什么是pipeline

从某种抽象层次上讲,部署流水线(Deployment pipeline)是指从软件版本控制库用户手中这一过程的自动化表现形式。——《持续交付-发布可靠软件的系统方法》

    pipeline 英语愿意为管道,在Jenkins里面可以理解为,是一套工作流框架,它将原本各个彼此独立的任务连接起来,实现一些比较复杂的工作流程,整个运行流程看起来就像是一个管道一样。

    Jenkins 2.x可以支持pipeline as code,即通过代码来描述部署流水线。使用代码而不是UI的意义在于:

  • 更好地版本化:将pipeline提交到版本管理库中,可以更好的进行版本管理
  • 更好地协作:pipeline的每次修改对所有人均是可见的,也可对pipeline进行代码审查
  • 更好的复用性:手动操作配置没有办法比较难直接复用,而代码则可以
  • 更直观的工作流程:通过pipeline可以更加直观看到当前整个工作流所涉及到的各个环节等信息

1.2 pipeline 语法选择

    Jenkins 团队在一开始实现Jenkins pipeline时,Groovy被选为基础来实现,因此在写pipeline时,很像是在写Groovy代码,从而有很大的灵活性和可扩展性。因此pipeline也被分成两种格式的语法:脚本式语法(Scripted)声明式语法(Declarative)

  • 脚本式语法
node {
    stage("Build") {
        println "构建应用"
    }
    stage("Test") {
       println "测试应用"
    }
    stage("Deploy"){
        try{
            println "部署应用"
        }
		catch(err){
          // 捕获异常
		  throw err
		}
    }
}
  • 声明式语法
pipeline{
   agent any

   stages{
    stage("Build"){
	    steps{
		  echo "构建应用"
		}
	 }
	stage("Test"){
	    steps{
		   echo "测试应用"
		}
	 }
	stage("Deploy"){
	   steps{
	     echo "部署应用"
	   }
	 }
   }
   post {
	    failure{
		  echo "运行失败"
		}
     }
}

    以下两种语法格式差异如下所示:

  • 脚本式语法灵活可扩展,也意味着更复杂。适合于对于Groovy非常熟悉的团队或个人
  • 声明式语法简单更结构化

pipeline插件从2.5版本开始,同时支持两种格式的语法。后续示例均采用声明式语法

1.3 Jenkinsfile

    Jenkinsfile是一个文本文件,是pipeline概念在Jenkins中的具体体现形式。类似于Dockerfile与Docker的关系。

如果在Jenkins使用pipeline,需要确认是否安装pipeline插件。

    pipeline 的代码可以直接写到Jenkins里面也可以通过版本管理工具来拉取。gitlab拉取示例如下所示:

脚本路径:就是pipeline的文件名,默认为Jenkinsfile

标签:pipeline,01,代码,echo,语法,Jenkins,stage
From: https://www.cnblogs.com/surpassme/p/16951259.html

相关文章

  • 2022-2023-1 20221401 《计算机基础与程序设计》第十四周学习总结
    2022-2023-120221401《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......
  • raid0、raid1、raid5、raid10、raid01原理
    什么是RAID独立硬盘冗余阵列(RAID,RedundantArrayofIndependentDisks)简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,称为一个或多个硬盘阵列组,目的是为提升性能或......
  • 力扣刷题01
    704.二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:num......
  • web APIs-day01-简介js学习
       ......
  • 20201203 T1 color
    题目描述给定一个\(n\)个点的环,初始时全为白色,每次有两种操作:随机选一个点(可能为黑),把它变成黑色,代价为\(1\);选一个点,若其在环上相邻两点都为黑色,则可把它变成黑......
  • 每日食词—day019
    residualadj. n.剩余、残余的、残差、误差newfilev. n.新文件、新建文件livestreamn.现场直播、视频直播、直播频道trien.字典树、前缀树、单词查找树......
  • 每日食词—day018
    singletonn.单件、单例whetherconj. pron.是否、有无、无论、不管targetn.目标、指标supernettingn.超网constn.常量、常数、固定unitn.单位......
  • 每日食词—day017
    displayv. n.显示、展示、陈列、显示器enumeratingn.枚举、列举、穷举法replacementn.替换、替代、置换denominatorn.分母humidityn.湿度、潮湿、......
  • Android-操作系统简介01
    01.系统简介1.1Android名词Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件......
  • 2022-2023-1 20221301 《计算机基础与程序设计》第十四周学习总结
    2022-2023-120221301《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFA......