在Jenkins Pipeline / Groovy中连接环境变量

17

我正在尝试在Jenkinsfile中设置一些环境变量,但是我的Java/Groovy知识不足似乎让我失败了...

pipeline {
    agent any
    environment {
        TMPDIR = /mnt/storage/build
        TOX_DIR = $TMPDIR/$BUILD_TAG
    }
...

在控制台上会生成以下错误...
WorkflowScript: 7: Environment variable values can only be joined together with +s. @ line 7, column 26.
       TOX_DIR = $TMPDIR/$BUILD_TAG

其他变体,例如...

TOX_DIR = "$TMPDIR" + "/" + "$BUILD_TAG"

或者

TOX_DIR = "$TMPDIR/$BUILD_TAG"

或者

TOX_DIR = "${TMPDIR}/${BUILD_TAG}"

只会让问题更加恶化。

我错过了什么?谢谢...

3个回答

22

使用Jenkins v2.89.2 - 对于我来说,双引号比单引号更有效。

environment{
    MESSAGE = "release-staging-${BUILD_TIMESTAMP}"
}

2

嗯...答案比我想象的更简单,只是缺少引号...

....
environment {
    TMPDIR = '/mnt/storage/work'
    TOX_DIR = '${TMPDIR}/${BUILD_TAG}'
}
...

0

解决方案: 错误 Environment variable values can only be joined together with ‘+’s 表示你 漏了引号。只需在字符串或字符串构建器上加引号。

environment {
    SOME_VAR = "Content"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接