jenkins - 在 Jenkins 声明性管道中将 git committer 的名称设置为环境变量
问题描述
在 jenkins 声明式管道中,我试图获取 git committer 的名称,然后将其设置为 en 环境变量。获取部分工作正常,但是,无论我尝试哪种语法,它都不起作用。
例如我试过script
块:
script {
env.GIT_CULPRIT = sh('git log --format="%ae" | head -1 | awk -F"@" \'{print $1}\'')
echo "culprit: ${env.GIT_CULPRIT}"
}
输出:
[管道] 回声罪魁祸首:空
试environment
块(dir
块内):
environment {
env.GIT_CULPRIT = sh(script: 'git log --format="%ae" | head -1', returnStdout: true)
echo "culprit: ${env.GIT_CULPRIT}"
}
输出:
WorkflowScript:33:缺少必需参数:“名称”@ 第 33 行,第 21 列。环境 { ^
WorkflowScript:33:缺少必需参数:“值”@ 第 33 行,第 21 列。环境 { ^
解决方案
从“ Jenkins Pipeline - 设置和使用环境变量”,第二种方法应该有效。
除了:
以上仅在环境部分位于“
stage
”内但会在阶段外产生“null
”时才有效。WORKSPACE
请注意,在步骤部分中,该环境变量被引用为${VAR}
,而不是${env.VAR}