Jenkins 进阶(一)Pipeline
一、Pipeline 介绍
jenkins 2.x 开始流行pipeline(groovy语言编写)的写法,目的是通过以代码的方式来进行job的构建,减少人工操作导致的人为出错。它是用于描述整条流水线是如何进行,流水线的内容一般包括执行编译、打包、测试、部署及告警通知等步骤。
二、Pipeline 语法
1. 声明式 Pipeline
完整pipeline流水线,由以下5部分组成,缺一不可,否则jenkins会报错
1 | |
pipeline: 代表整条流水线,包含整条流水线的逻辑;agent:any:任意可用的执行器);none:每个stage需指定相应的agent;node:指定节点;docker:指定容器;
stages:整个流水线的所有执行阶段,里面包含多个stage;stage:流水线中的某个阶段,如拉取代码,编译构建,部署等阶段;steps:代表阶段内需要执行的命令,如shell命令等。
除以上5个必要组成部分,还可以自定义选择以下配置:
字符串变量:通过def var=1定义,可以在pipeline中使用$var引用;environment:配置环境变量,可用于step中 ;options: 允许执行pipeline内置的专用选项,也可以使用由插件提供的,如timeout,retry,timestamps等 ;parameters:参数列表,如字符参数、布尔参数等;trigger:定义了触发pipeline的方式;tools:支持maven、jdk、gradle,需在jenkins全局配置中已经定义好when:代码逻辑;script:流控制,如if/else;post:有always,unstable,success,failure,和changed等多种情况,常用于构建完成或失败时的通知告警;
Jenkins 支持对声明式 pipeline 的语法正确性校验,且支持某个stage执行失败后通过修复错误可直接回到此stage步骤重新开始执行。
2. 代码生成工具
部分脚本语法可以使用jenkins中的Pipeline Syntax来生成 ,例如拉取代码操作, 通过代码生成器,可以快速生成需要的pipeline代码段:
配置好版本库信息后,点击 “生成流水线脚本”,得到 pipeline 代码如下:
1 | |
三、Pipeline 的实际运用
通常来说,一条完整CI流水线基本包含代码拉取、编译构建、代码测试及部署,以及部署成功/失败后的通知推送:
接下来,我们用 pipeline 来实现这个流程。
Jenkins 进阶(一)Pipeline
http://dunkingcurry30.github.io/2022/08/12/Jenkins进阶pipeline/