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

pipeline 步骤(下)

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

五.处理复杂判断逻辑

有些场景要求我们根据传入的参数做一些逻辑判断。很自然的,就想到在script函数内实现 stage(“deploy to test”){     steps{         script {             if (params.CHOICES == ‘test’) {                 echo “deploy to test”             }         }     } }

这样写起来很不优雅,Conditional BuildStep插件可以让我们像使用when指令一样进行条件判断。一下代码是安装后的写法

  1. pipeline {
  2.     agent any
  3.     parameters {
  4.         choice(name:'CHOICES', choices:'dev\ntest\nstaging', description:'请选择部署的环境')
  5. }
  6.     stages {
  7.         stage("deploy test") {
  8.             when {
  9.                 expression {return params.CHOICES == 'test'}
  10. }
  11.             steps {
  12.                 echo "deploy to test"
  13. }
  14. }
  15.         stage("deploy staging") {
  16.             when {
  17.                 expression {return params.CHOICES == 'staging'}
  18. }
  19.             steps {
  20.                 echo "deploy to staging"
  21. }
  22. }
  23. }
  24. }

现实中,我们会面对更复杂的判断条件。而expression表达式本质上就是一个Groovy代码矿,大大提高了表达式的灵活性。

或逻辑

  1. when {
  2. // A or B
  3.     expression {return A || B}
  4. }

与逻辑

  1. when {
  2. // A or B
  3.     expression {return A && B}
  4. }

从文件中取值

  1. when {
  2.     expression {return readFile('pom.xml').contains('mycomponent')}
  3. }

正则表达式

  1. when {
  2.     expression {return token ==~ /(?i)(Y|YES|T|TRUE|ON|RUN)/}
  3. }

六、ANT风格表达式

Ant是比Maven更老的Java构建工具。Ant发明了一种描述文件路径的表达式,大家都习惯称其为Ant风格路径表达式。Jenkins pipeline的很多步骤的参数也会使用此变道时。

Path

Description

/app/*.x

匹配(Matches)app路径下所有.x文件

/app/p?ttern

匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern

/**/example

匹配项目根路径下 /project/example, /project/foow/example, 和 /example

/app/**/dir/file.

匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java

/**/*.jsp

匹配项目根路径下任何的.jsp 文件

需要注意的是,路径匹配遵循最长匹配原则(has more characters),例如/app/dir/file.jsp符合/**/.jsp和/app/dir/.jsp两个路径模式,那么最终就是根据后者来匹配。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 五.处理复杂判断逻辑
  • 六、ANT风格表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档