我试图将更多的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是我唯一的选择吗?
我不知道为什么有些变量可用,而有些变量却不可用,但看来您并不是唯一一个存在该问题的变量
使用例如git show -s --pretty=%an,获取作者名称,并通过命令替换将其存储在变量中,如@MattKneiser所述:
git show -s --pretty=%an
foo=$(git show -s --pretty=%an)
此变量在Jenkins作业的其他Shell步骤中将不可用,但是您可以将其保存到工作区中的文件中,
echo "foo=\"$foo\"" > $WORKSPACE/envvars
然后在另一个外壳中获取该文件:
. $WORKSPACE/envvars