在FreeStyle项目中,我有很多env,它们可以从Jenkins工作的任何部分获得。我还使用ghprb插件来触发针对GH PRs的工作,这增加了一些额外的env。
后来,这项工作变得更加复杂,所以我决定把它放在Jenkins管道上。但是现在,问题是,我无法在管道中检索那些先前在Freestyle项目中可用的env。
我是写Jenkins管道的新手,所以我决定为此使用声明式方法(但我不认为这是根本原因)。那么,我的问题是,如何在Jenkins管道中检索env,例如:${BUILD_CAUSE}、${ghprbTargetBranch}、${ghprbActualCommitAuthorEmail}?
发布于 2019-09-09 07:50:26
如果要在声明性管道中使用带有${VAR}语法的环境变量,则需要在environment { }块中定义这些变量。
例如:
environment {
DISABLE_AUTH = 'true'
DB_ENGINE = 'sqlite'
}
stages {
stage('Build') {
steps {
echo "Database engine is ${DB_ENGINE}"
echo "DISABLE_AUTH is ${DISABLE_AUTH}"
sh 'printenv'
}
}
}如果您想使用来自其他插件等的环境变量,那么您需要使用env.VAR语法访问它们。例如:
echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
发布于 2019-04-10 14:00:09
不确定是否有,但将vars放入双引号:
... "${BUILD_CAUSE}"https://devops.stackexchange.com/questions/6811
复制相似问题