前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pipeline when指令

pipeline when指令

原创
作者头像
陈不成i
修改2021-06-03 18:03:13
1.2K0
修改2021-06-03 18:03:13
举报
文章被收录于专栏:ops技术分享

一.简介

when指令允许pipeline根据给定的条件,决定是否执行阶段内的步骤。when指令必须至少包含一个条件。when指令除了支持branch判断条件,还支持多种判断条件。

如下使用

stage('Example Deploy') {

  1. when {
  2. branch 'production'
  3. }
  4. steps {
  5. echo 'Deploying'
  6. }
  7. }

二.选项

单独判断

changelog :如果版本控制库的changelog符合正则表达式,则执行

  1. when {
  2. changelog '.*^\\[DEPENDENCY\\] .+$'
  3. }

changeset :如果版本控制库的变更集合中包含一个或多个文件符合给定的Ant风格路径表达式,则执行

  1. when {
  2. changeset "**/*.js"
  3. }

environment :如果环境变量的值与给定的值相同,则执行

  1. when {
  2. environment name: 'DEPLOY_TO', value: 'production'
  3. }

equals :如果期望值与给定的值相同,则执行

  1. when {
  2. equals expected: 2, actual: currentBuild.number
  3. }

expression :如果Groovy表达式返回的是true,则执行。当表达式返回的是字符串时,它必须转换成布尔类型或null ;否则,所有的字符串都被当作true处理。

  1. when {
  2. expression {
  3. return env.BRANCH_NAME != 'master';
  4. }
  5. }

buildingTag :如果pipeline所执行的代码被打了tag,则执行

  1. when {
  2. buildingTag()
  3. }

tag:如果pipeline所执行的代码被打了tag,且tag名称符合规则,则执行。如果tag的参数为空,即tag ( ),则表示不论tag名称是什么都执行,与buildingTag的效果相同。

  1. when {
  2. tag "release-*"
  3. }

tag条件支持comparator参数,支持的值如下。

EQUALS:简单的文本比较

  1. when {
  2. tag pattern "release-3.1", comparator: "EQUALS"
  3. }

GLOB(默认值) :Ant风格路径表达式。由于是默认值,所以使用时一般省略。

  1. when {
  2. tag pattern "release-*", comparator: "GLOB"
  3. }

REGEXP∶正则表达式

  1. when {
  2. tag pattern "release-\\d+", comparator: "REGEXP"
  3. }

条件组合

以上介绍的都是单条件判断,when指令还可以进行多条件组合判断。

allOf :所有条件都必须符合。下例表示当分支为master且环境变量DEPLOY_TO的值为production时,才符合条件。注意,多条件之间使用分号分隔。

  1. when {
  2. anyof {
  3. branch 'master';
  4. environment name: 'DEPLOY_TO', value: 'production'
  5. }
  6. }

anyOf:其中一个条件为true,就符合。下例表示master分支或staging分支都符合条件。

  1. when {
  2. anyof {
  3. branch 'master';
  4. branch 'staging'
  5. }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.简介
  • 二.选项
    • 单独判断
      • 条件组合
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档