首页 > 其他分享 >1、Pipeline Job的简单构建与代码片断生成器

1、Pipeline Job的简单构建与代码片断生成器

时间:2023-04-21 19:03:45浏览次数:34  
标签:pipeline 代码 生成器 Pipeline agent Job 流水线 stage

Pipeline Job

脚本式语法和声明式语法
Jenkins 2.x支持两种pipeline语法:脚本式语法和声明式语法
脚本式流水线:
//脚本式流水线:node用于脚本式流水线,从技术层面上来说,
//它是一个步骤,代表可以用于流水线中执行活动的资源
node('node01') {
  stages { 
    stage('Build') {
      steps {
        echo 'Building...'
      }
    }
    stage('Test') {
      steps {
        echo 'Testing...'
      }
    }
  } 
}
声明式流水线:
//声明式流水线:agent用于声明式流水线,它作为一个指令用于分配节点;
pipeline{
  agent {label'node01'
  
  stages { 
    stage('Build') {
      steps {
        echo 'Building...'
      }
    }
    stage('Test') {
      steps {
        echo 'Testing...'
      }
    }
  } 
}
pipeline的组成
(每个stage都是独立执行的,如果有前后关联关系,可以在同一个agent上执行,如果没有关联关系,可以放在不同的agent上执行,就算有关联关系,也可以放在同一agent的不同容器中执行)
 pipeline实际上就是基于Groovy语言实现的一种DSL(Domain-Specific 
Language),用于描述代码编译到打包发布的整个流水线是如何进行的;
 pipeline的定义有一个明确的、必须遵循的结构,它由一些指令及嵌套的代
码块组成,该结构存在以下几个基本元素
◼ pipeline:流水线的最外层结构,代表整条pipeline,包含着pipeline的完整逻辑;
◼ stages:用于包含所有stage的定义;
◼ stage:阶段,代表流水线的一个单独的功能完成时期,例如编译等;
◼ steps:用于在stage中定义完成该阶段功能所需要经历的一系列步骤,并能够把
这些步骤同该stage中的其它定义(如环境的定义等)分隔开;
◼ agent:pipeline中的单独指令,用于指定流水的执行位置,它可能是代表着slave
主机的某个物理机、虚拟机或者容器;
◼ post:用在stage代码块,或者是整个pipeline执行完成后附加的步骤;
 在上面给出的几个配置中,post是配置语法中惟一可省略的,但在实际应用
中,通常不能省略
部署完jenkins之后创建一个pipelian项目

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job

Jenkins内置的流水线编辑器

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_02

Pipeline编辑器的特性
 语法检查
   ◼ 编辑器会尝试检查Groovy语法和引用的有效性,所有问题都会在对应代码行前面通过红色“X”方框标记提
示出来;
   ◼ 然而,并非所有的错误标记都代表真正的错误,在某些时候脚本可能无法解析依赖或最近创建的输入,这是
一个异常而非规则;
 完整的错误信息
   ◼ X标记在提供快速识别问题行的同时,还支持鼠标悬停时展示完整的错误信息;
 自动补全
   ◼ 编辑器还提供了一定程度上的自动补全功能,比如自动补全括号;
 提供了“代码片断生成器”
   ◼ 代码片断生成器提供了一种搜索可用的DSL步骤的方法,以帮助用户随时借鉴和查阅感兴趣步骤的主义和语
法
如:点开流水线语法,有片段生成器,指令生成器,点击DDG指令生成器,打算在哪个agent上执行

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_03

把生成的内容粘贴到脚本中(在任何一个agent上执行)

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job_04

指令生成器:定义stages,添加阶段、完成该阶段功能所需要经历的一系列步骤(如参数、环境变量等)

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_05

定义克隆代码、构建、测试、打包

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_06

应用保存立即构建并查看构建结果(每一个圆点代表执行的一个stage,执行成功为绿色表示)

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job_07

运行失败的视图
 多次运行构建任务时,最新一次的运行位于视图中的最上方;
◼ 当某个stage因任何原因运行失败时,Jenkins会将其标记为红色条纹背景;
◼ 鼠标悬停于stage方块上方,会有错误信息提示;
◼ 例如,我们将此前pipeline示例代码的“Build”阶段有意改为错误格式,例如将echo换成bat命令等,其构建
结果将输出为类似如下视图;

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job_08

流水线步骤
Pipeline Job中的流水线步骤可以分解显示每个步骤的执行状态

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_09

回放(Replay)
 对于错误的构建任务,Jenkins提供了一种称为“回放”的机制,它允许用户无须改变已保存的原有代
码的基础上进行试验和调试;
◼ 回放为用户提供了一种在原有代码基础上修改代码并再次触发pipeline的功能,以便于在正式提交代码之前进
行一次变更的快速快速验证并查看效果;
   ◆ 点击构建菜单中的“回放”,会弹出编辑窗口,并允许用户任意修改程序,而后点击“运行”按钮来验证变更效果;
   ◆ Jenkins会在回放窗口中运行编辑后的代码,并保存一次全新的构建记录,但原始代码依然保持从前的状态;因此,回放操作能帮用户验证变更,但真正的变更依然需要用户手动更新pipeline的代码完成;

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_10

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job_11

从指定作业开始运行

1、Pipeline Job的简单构建与代码片断生成器_Pipeline Job_12

就不再运行Fetch Code

1、Pipeline Job的简单构建与代码片断生成器_Jenkins脚本式语法和声明式语法_13

标签:pipeline,代码,生成器,Pipeline,agent,Job,流水线,stage
From: https://blog.51cto.com/mfc001/6213943

相关文章

  • Oracle 创建定时任务 DBMS_JOB
    需求:创建一个每天凌晨一点执行的任务(存储过程)1、创建存储过程--一般存储过程语法CREATEORREPLACEPROCEDUREUPDATE_LABEL_TABLE_DATE_DTISBEGIN UPDATEIC_CO_BAE_INFOSETDT=TO_CHAR(TRUNC(SYSDATE-1),'yyyy-MM-dd'); UPDATEIC_RG_RRG_INFO_V1SETDT=TO_CHAR(......
  • k8s编写cronjob
    1.k8s编写cronjob的知识点:通过sed对cronjob的yaml文件中的image属性进行替换:seds/old/new/gfile当old和new均为变量的时候,书写方式如下:sed-i's#'''$old_image'''#'''$new_image'''#g'quota-cronjob.yaml 2.cron......
  • OpenKruise V1.4 版本解读:新增 Job Sidecar Terminator 能力
    作者:立衡前言OpenKruise是阿里云开源的云原生应用自动化管理套件,也是当前托管在CloudNativeComputingFoundation(CNCF)下的孵化项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀,是阿里内部生产环境大规模应用的基于Kubernetes之上的标准扩展组件,也是紧贴上游社区标......
  • 批量清除 Jenkins Job 的构建信息
    要批量清除JenkinsJob的构建信息,您可以使用Jenkins的Groovy脚本执行器。请按照以下步骤操作:登录到Jenkins管理界面。点击左侧导航栏中的"管理Jenkins"。向下滚动并找到"脚本控制台",点击进入。在脚本控制台中,粘贴以下Groovy脚本(根据需要修改脚本中的Job......
  • 开发者必读!常用的二维码生成器 API 推荐
    引言二维码是一种能够存储信息的图形码,它在现代社会中扮演着越来越重要的角色。生成二维码的过程通常需要使用二维码生成器,而现在有很多二维码生成器API可以供开发者使用。在本文中,我们将讨论二维码生成器API的工作原理、应用场景,并且给大家介绍一些常用的二维码生成器API,......
  • 简单的密码生成器
    importrandomchars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+-="length=int(input("请输入密码长度:"))password=""foriinrange(length):password+=random.choice(chars)print("生成的密......
  • Redis Pipeline(管道)
    RedisPipeline简介Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。一次Redis客户端发起的请求,经过服务端的响应后,大致会经历如下的步骤:客户端发起一个(查询/插入)请求,并监听socket返回,通常情况都是阻塞模式等待Redis服务器的响应服务端处理命令,并且返回处理结果......
  • 浅析python中的生成器和迭代器
    一、什么叫生成器?在Python中,一边循环一边计算的机制,称为生成器:generator二、怎么创建生成器1.生成器表达式()生成器表达式返回一个生成器对象,需要用一个变量名来接收g=(x*3forxinrange(5))#打印g,返回一个生成器对象print(g)#<generatorobject<genexpr>at0x000......
  • Redis高级 哈希类型、列表类型、集合类型、有序集合(zset)、慢查询、pipeline与事务
    哈希类型###1---hget,hset,hdelhgetkeyfield#获取hashkey对应的field的value时间复杂度为o(1)hsetkeyfieldvalue#设置hashkey对应的field的value值时间复杂度为o(1)hdelkeyfield#删除hashkey对应的field的值时间复杂度为o(1)#测试hsetuser:1:infoage......
  • 【Redis】哈希类型 列表类型 集合类型 有序集合 慢查询 pipeline与事务 发布订阅 Bitm
    目录昨日回顾今日内容1哈希类型2列表类型3集合类型4有序集合(zset)5慢查询6pipeline与事务7发布订阅8Bitmap位图9HyperLogLog作业昨日回顾#1redis介绍 -特性#速度快:10wops(每秒10w读写),数据存在内存中,c语言实现,单线程模型#持久化:rdb和aof#多种数据结......