pipeline when指令
2024-09-04 21:53:16
一.简介
when指令允许pipeline根据给定的条件,决定是否执行阶段内的步骤。when指令必须至少包含一个条件。when指令除了支持branch判断条件,还支持多种判断条件。
如下使用
stage('Example Deploy') {
when {
branch 'production'
}
steps {
echo 'Deploying'
}
}
二.选项
单独判断
changelog :如果版本控制库的changelog符合正则表达式,则执行
when {
changelog '.*^\\[DEPENDENCY\\] .+$'
}
changeset :如果版本控制库的变更集合中包含一个或多个文件符合给定的Ant风格路径表达式,则执行
when {
changeset "**/*.js"
}
environment :如果环境变量的值与给定的值相同,则执行
when {
environment name: 'DEPLOY_TO', value: 'production'
}
equals :如果期望值与给定的值相同,则执行
when {
equals expected: 2, actual: currentBuild.number
}
expression :如果Groovy表达式返回的是true,则执行。当表达式返回的是字符串时,它必须转换成布尔类型或null ;否则,所有的字符串都被当作true处理。
when {
expression {
return env.BRANCH_NAME != 'master';
}
}
buildingTag :如果pipeline所执行的代码被打了tag,则执行
when {
buildingTag()
}
tag:如果pipeline所执行的代码被打了tag,且tag名称符合规则,则执行。如果tag的参数为空,即tag ( ),则表示不论tag名称是什么都执行,与buildingTag的效果相同。
when {
tag "release-*"
}
tag条件支持comparator参数,支持的值如下。
EQUALS:简单的文本比较
when {
tag pattern "release-3.1", comparator: "EQUALS"
}
GLOB(默认值) :Ant风格路径表达式。由于是默认值,所以使用时一般省略。
when {
tag pattern "release-*", comparator: "GLOB"
}
REGEXP∶正则表达式
when {
tag pattern "release-\\d+", comparator: "REGEXP"
}
条件组合
以上介绍的都是单条件判断,when指令还可以进行多条件组合判断。
allOf :所有条件都必须符合。下例表示当分支为master且环境变量DEPLOY_TO的值为production时,才符合条件。注意,多条件之间使用分号分隔。
when {
anyof {
branch 'master';
environment name: 'DEPLOY_TO', value: 'production'
}
}
anyOf:其中一个条件为true,就符合。下例表示master分支或staging分支都符合条件。
when {
anyof {
branch 'master';
branch 'staging'
}
}
最新文章
- SpringMVC org.xml.sax.SAXParseException: cvc-complex-type.2.4.c 报错处理方式
- Eclipse 增加php插件
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
- discuz mysqli_connect() 不支持 advice_mysqli_connect
- 6、UITableView表的分割线左对齐
- 在Android界面特效中如何做出和墨迹天气及UC中左右拖动的效果
- PAC学习框架
- php session跨页面传递 session值丢失问题
- [Django_1_0]初次见面
- iOS 语音识别使用讯飞报错
- android*API19
- 提高duilib的richedit控制的一些特征
- PyQt4 的部件 -- CheckBox 单选框
- HTML 5 <;canvas>; 标签
- Django_xamin注册model错误
- springMVC源码分析--@SessionAttribute用法及原理解析SessionAttributesHandler和SessionAttributeStore
- Hugo + Github Pages 搭建个人博客
- Qt编写自定义控件2-进度条标尺
- underscore.js源码解析【函数】
- HTML 换行
热门文章
- Android Activity Deeplink启动来源获取源码分析
- 【备忘】下载Oracle 8u202及之前的商用免付费版本JDK
- [cf1458D]Flip and Reverse
- Cortex-A系列中断
- AOP实现方式二
- 多线程02.继承Thread类
- [源码解析] PyTorch 分布式(12) ----- DistributedDataParallel 之 前向传播
- 关于Jmeter线程组的设置,看这一篇就够了
- CentOS7部署ceph
- 雪花算法对System.currentTimeMillis()优化真的有用么?