在 Jenkins 声明式管道中将 git 提交者的名称设置为环境变量



在 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}"
}

输出:

工作流脚本:33:缺少必需参数:"name"@第 33 行,第 21 列。 环境 { ^

工作流脚本:33:缺少必需参数:"值"@ 第 33 行,第 21 列。 环境 { ^

从"Jenkins Pipeline - 设置和使用环境变量"中,第二种方法应该有效。

除了:

上述方法仅在环境部分位于"stage"内时才有效,但对于阶段外的WORKSPACE会产生"null"。

请注意,在步骤部分中,该环境变量被引用为${VAR},而不是${env.VAR}

最新更新