- 最新动态
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 模板管理
-
流水线管理
- 启动流水线
- 批量获取流水线状态
- 获取流水线状态/获取流水线执行详情
- 获取流水线列表/获取项目下流水线执行状况
- 删除流水线
- 查询流水线详情
- 修改流水线信息
- 停止流水线
- 获取流水线执行记录
- 基于模板创建流水线
- 创建流水线
- 重试运行流水线
- 通过人工审核
- 获取流水线运行需要的自定义参数
- 驳回人工审核
- 查询流水线日志
- 获取流水线步骤执行输出
- 查询流水线上的构建产物
- 批量删除流水线
- 禁用流水线
- 批量设置流水线标签
- 启用流水线
- 批量运行流水线
- 查询流水线任务日志
- 延时任务通过
- 延时任务拒绝
- 延时1小时
- 手动卡点通过
- 手动卡点拒绝
- 解除挂起
- 查询批量执行流水线结果
- 交换分组顺序
- 流水线官方消息通知查询
- 流水线官方消息通知更新
- 流水线消息通知开关
- 流水线第三方消息通知查询
- 流水线第三方消息通知更新
- 查询流水线的角色权限
- 查询流水线的用户权限
- 修改流水线的角色权限
- 修改流水线的用户权限
- 查询流水线是否启用二级权限
- 修改流水线是否启用二级权限
- 批量设置流水线实例二级权限
- 取消某次流水线排队
- 查询当前流水线排队中的记录
- 查询流水线的旧版运行记录
- 查询流水线运行使用的参数
- 回退执行流水线
- 获取step跳转链接
- 查询流水线运行的变更
- 查询流水线可用的系统参数
- 查询流水线触发失败记录
- 查询流水线修改历史
- 创建参数组
- 修改参数组
- 删除参数组
- 流水线绑定参数组
- 查询参数组详情
- 查询流水线关联的参数组
- 查询参数组列表
- 获取通用Webhook信息
- 分组管理
- 规则管理
- 租户级策略管理
- 项目级策略管理
- 扩展插件管理
- 扩展点管理
- 流水线标签管理
- 变更管理
- 微服务管理
- 模板管理(旧版,待下线)
- 流水线管理(旧版,待下线)
- 应用示例
- 附录
- 文档修订记录
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
展开导读
链接复制成功!
配置流水线执行条件表达式
在流水线阶段任务的执行条件中通过表达式引用流水线上下文,用以限制任务执行。表达式由流水线上下文、操作符、函数或常量组合而成,表达式以编程的方式访问流水线上下文,实现将流水线中运行的实例、变量、任务等信息在流水线之间互相传递。
- 新建流水线。
- 新建阶段任务或编辑已有阶段任务。
- 单击“任务配置”,在“执行条件”参数项选择“表达式”,即可配置流水线阶段任务执行条件的表达式。
说明:
如果是新建阶段任务,需添加插件后再单击“任务配置”。
图1 执行条件表达式示例:
在执行条件中定义任务在指定代码源的运行分支为“master”时才运行,表达式语法如下:
${{ sources.my_repo.target_branch == 'master' }}
相关参考
- 操作符
表达式中可以使用如下操作符:
表1 操作符 操作符
说明
.
属性引用。如:${{ pipeline.trigger_type }},表示获取流水线的触发类型。
!
非。如:${{ !startsWith(sources.my_repo.target_branch, 'release') }},表示判断流水线代码源的分支是否不以release开头。
==
等于。如:${{ pipeline.trigger_type == 'Manual' }},表示判断流水线的触发方式是否为手动触发。
!=
不等于。如:${{ pipeline.trigger_type != 'Manual' }},表示判断流水线的触发方式是否不为手动触发。
&&
且。如:${{ pipeline.trigger_type == 'Manual' && sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发并且流水线代码源的分支为master。
||
或。如:${{ pipeline.trigger_type == 'Manual' || sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发或者流水线代码源的分支为master。
- 函数
表达式中可使用如下内置函数:
表2 内置函数 函数
说明
contains
startsWith
endsWith
对象筛选器
使用“*”语法应用筛选器并选择集合中的匹配项。
示例:如下是流水线某次运行的jobs上下文
{ "check_job": { "status": "COMPLETED", "metrics": { "critical": "0", "major": "0" } }, "demo_job": { "status": "FAILED" } }
- 示例1:“jobs.*.status”,表示所有任务的状态,所以返回“[ 'COMPLETED', 'FAILED' ]”。
- 示例2:结合contains函数一起使用,如:contains(jobs.*.status, 'FAILED'),“jobs.*.status”中包含“FAILED”,所以返回“true”。