如何使用Groovy在声明性Jenkins管道中填充环境变量

时间:2018-07-25 16:40:59

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我正在努力使用groovy在Jenkinsfile中填充环境变量

以下代码失败:

pipeline {
  environment {
    PACKAGE_NAME = JOB_NAME.tokenize('/')[1]
  }
{

,出现以下错误:

  

环境变量值只能与“ +”组合在一起

我在做什么错?抱歉,如果问题是基本的,那么我只是从常规和流水线开始。

1 个答案:

答案 0 :(得分:3)

声明性管道对于可以分配给环境变量的值非常严格。例如,如果您尝试将PACKAGE_NAME设置为JOB_NAME,则会出现以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Environment variable values must either be single quoted, double quoted, or function calls. @ line 5, column 24.
       PACKAGE_NAME = JOB_NAME

为避免出错,并按预期设置PACKAGE_NAME env变量,可以将其放在双引号中并在GString中评估表达式:

environment {
    PACKAGE_NAME = "${JOB_NAME.tokenize('/')[1]}"
}