如何从 Jenkins 管道中的函数返回“allOf”的值

2024-05-12

我们有一个 Jenkins 管道设置,使用 Jenkinsfile 来定义不同构建需要做什么。

在我们的很多阶段,当我们要发布版本时,我们需要完成一些工作,但如果不打算发布版本,则可以跳过这些工作。

目前我们有这样的代码:

when {
  allOf {
    anyOf {
      branch 'master';
      branch 'develop';
    }
    expression {
      return params.DBTESTS
    }
  }
}

在所有可以跳过的阶段中重复。

我如何将其转换为一个函数,以便逻辑位于一个类似于这样的地方:

def isReleasePlanned() {
   return  allOf {
      anyOf {
         branch 'master';
         branch 'develop';
      }
      expression {
        return params.DBTESTS
      }
    }
  }
}

然后像这样使用:

when {
  isReleasePlanned()
}

在每个阶段。目前,当 Jenkins 尝试读取 Jenkinsfile 时,这是一个语法错误。


你可以尝试类似的东西

def isReleasePlanned(branch, params){
    return branch ==~ "master|develop" && params.DBTESTS
}

pipeline {
...
   stages {
   ...
       stage("For release"){
           when {
               expression{ isReleasePlanned(GIT_BRANCH, params) }
           }
       }
   }
...
}

或者从自定义库导出该函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Jenkins 管道中的函数返回“allOf”的值 的相关文章

随机推荐