我开始编写一个基本上可以完成某些工作(例如编译或测试代码)的小工具,然后在失败时发送电子邮件。
https://github.com/JohnReedLOL/EmailTestingBot
我想添加一个功能,该工具可以以编程方式查看工作目录中的最后一个提交,查看提交的作者,提取他们的电子邮件,然后向该人发送电子邮件,无论他们的提交导致通过还是失败。失败。
例如,我希望它执行以下操作:Git: See my last commit
该电子邮件的基本内容为:
主题:测试结果
消息:开发人员通过了所有针对提交0e39756383662573的测试。
Jenkins是否已提供此功能?我想让设置电子邮件发送最近提交的人。
还有,我是否可以通过编程方式(例如,使用http://www.eclipse.org/jgit/或http://javagit.sourceforge.net)来获取最近提交的作者的电子邮件?
我真的不太在乎如何收到电子邮件通知-我只是想要它们,而不能使用TravisCI。
答案 0 :(得分:1)
我将尝试部分解决方案。
第1部分: 是的,您可以从 Jenkins Link运行ShellScript(Shell命令)。
第2部分
如何从GitCommit获取电子邮件ID和其他内容。
为此, Jenkins 服务器应在构建服务器中安装git命令。
创建一个conf文件。 /conf/reference
拥有
app {
git {
commit = "CURRENT_COMMIT"
repo = "CURRENT_REPO"
timestamp = "CURRENT_TIMESTAMP"
emailId = "EMAIL_ID"
}
}
进行构建时,运行命令
sed -i'' "s/CURRENT_COMMIT/$(git rev-parse HEAD)/g" conf/reference.conf
sed -i'' "s^CURRENT_REPO^$(git config --get remote.origin.url)^g" conf/reference.conf
sed -i'' "s/CURRENT_TIMESTAMP/$(git show -s --format=%ci HEAD)/g" conf/reference.conf
sed -i'' "s/EMAIL_ID/git --no-pager show -s --format='%an <%ae>' CURRENT_COMMIT/g" conf/reference.conf
以上代码将把值放在reference.conf
中。
现在您可以用来获取信息并发送邮件。据我所知,詹金斯提供了发送电子邮件的功能。 Jenkins处理环境变量,而不是将其放入reference.conf
中,您可以将其放入环境变量中,然后使用环境变量来发送邮件。
仅供参考::我尚未测试此代码,但就我在詹金斯(Jenkins)的工作而言,我们曾经通过这种方式发送电子邮件。
#HappyCoding