如何使用 groovy 在声明性 jenkins 管道中填充环境变量
How to use groovy to populate an env variable in a declarative jenkins pipeline
我正在努力使用 groovy
在 Jenkinsfile 中填充环境变量
下面的代码失败了:
pipeline {
environment {
PACKAGE_NAME = JOB_NAME.tokenize('/')[1]
}
{
出现以下错误:
Environment variable values can only be joined together with ‘+’s
我做错了什么?抱歉,如果问题很基础,我只是从 groovy 和管道开始。
声明式管道对您可以分配给环境变量的值非常严格。例如,如果您尝试将 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]}"
}
我正在努力使用 groovy
在 Jenkinsfile 中填充环境变量下面的代码失败了:
pipeline {
environment {
PACKAGE_NAME = JOB_NAME.tokenize('/')[1]
}
{
出现以下错误:
Environment variable values can only be joined together with ‘+’s
我做错了什么?抱歉,如果问题很基础,我只是从 groovy 和管道开始。
声明式管道对您可以分配给环境变量的值非常严格。例如,如果您尝试将 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]}"
}