在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列。 环境 { ^
答案 0 :(得分:0)
从“ Jenkins Pipeline - set and use environment variables”开始,第二种方法应该有效。
除了:
以上内容仅在环境部分位于“
stage
”内时有效,但会在阶段之外为null
产生“WORKSPACE
”。
请注意,在步骤部分中,该环境变量被引用为${VAR}
,而不是${env.VAR}