一尘不染

Jenkins和Git-如何获取提交者的名字?

jenkins

我试图将更多的GIT提交信息放入HipChat会议室。

我看到在詹金斯中可以使用许多GIT变量。我正在执行作业的执行Shell步骤。

这些工作:

echo "${GIT_BRANCH}"

echo "${GIT_URL}"

echo "${GIT_COMMIT}"

这些不:

echo "${GIT_COMMITTER_EMAIL}"

echo "${GIT_COMMITTER_NAME}"

echo "${GIT_AUTHOR_EMAIL}"

echo "${GIT_AUTHOR_NAME}"

echo "${GIT_USER}"

问题1:以上的var为什么不起作用?

这有效:

git show --name-only

问题2:为什么我不能做Foo =“ git show –name-only”并在工作中的其他地方使用Foo,即-发送到HipChat?

我看到有一个插件envInject。但这是在执行执行外壳步骤的过程中写入工作区中的文件,然后从该文件读取。对于我想做的事情,这似乎有些过大。

问题3:envInject是我唯一的选择吗?


阅读 1281

收藏
2020-07-25

共1个答案

一尘不染

我不知道为什么有些变量可用,而有些变量却不可用,但看来您并不是唯一一个存在该问题的变量

使用例如git show -s --pretty=%an,获取作者名称,并通过命令替换将其存储在变量中,如@MattKneiser所述:

foo=$(git show -s --pretty=%an)

此变量在Jenkins作业的其他Shell步骤中将不可用,但是您可以将其保存到工作区中的文件中,

echo "foo=\"$foo\"" > $WORKSPACE/envvars

然后在另一个外壳中获取该文件:

. $WORKSPACE/envvars
2020-07-25