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

时间:2019-08-08 04:03:53

标签: jenkins jenkins-plugins

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

输出:

  

[管道]回声   罪魁祸首:null

尝试过environment块(在dir块内):

environment {
    env.GIT_CULPRIT = sh(script: 'git log --format="%ae" | head -1', returnStdout: true)
    echo "culprit: ${env.GIT_CULPRIT}"
}

输出:

  

WorkflowScript:33:缺少必需的参数:“ name” @第33行,第21列。                          环境 {                          ^

     

WorkflowScript:33:缺少必需的参数:“ value” @第33行,第21列。                          环境 {                          ^

1 个答案:

答案 0 :(得分:0)

从“ Jenkins Pipeline - set and use environment variables”开始,第二种方法应该有效。

除了:

  

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

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