如何在Jenkins声明式管道的环境部分中操作字符串

时间:2018-09-09 15:05:43

标签: jenkins-declarative-pipeline

这是我的管道的结构:

def call(String microservice_param) {

pipeline {
    environment {
        MICROSERVICE_NAME = "${microservice_param}".split("-")[1]
    }
}

我想操作字符串参数,如上所示,但出现此错误: Environment variable values can only be joined together with ‘+’s.

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

虽然我不喜欢自己的解决方案,但它确实有效: 定义一个新变量,并将其设置在管道块之前,并在您的环境中使用它。

def call(String microservice_param) {
  def microserv_name = microservice_param.split("-")[1]
  pipeline {
    environment {
    MICROSERVICE_NAME = "${microserv_name}"
    }
  .
  .
  .
  }
}

找不到更好的解决方案-也许有人会在这里提供。 假设您将使用更多的参数,则将为每个参数创建一个新变量,并在Environment指令中使用它。我们这样做是为了在共享库声明性管道代码中使用,但是将Map用作call参数。