首页 > 解决方案 > 在 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 列。环境 { ^

标签: jenkinsjenkins-plugins

解决方案


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

除了:

以上仅在环境部分位于“ stage”内但会在阶段外产生“ null”时才有效。WORKSPACE

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


推荐阅读