我只是想知道如何根据同一个Jenkins Job上的每个构建步骤结果发送带有Email-ext plugin的电子邮件 . 这是我的情景
我的詹金斯工作有3个构建步骤
构建第1步:
Pull latest code from github and Build the app - Gradle task which build the Jar
构建Step2:
Run all Tests against that Jar - Gradle Task which runs all Junit tests and provide Report files.
后期制作行动:
If Build step1 fails -> Send email telling Build fails and Console Log with Exception detials
If Build success and Tests run -> Send email with Test Reports
我想我需要为Email-Ext插件编写预发送脚本 . 但我不知道如何编写这个脚本 . 请协助 .
2 回答
在正常配置中,如果构建步骤1失败,则构建步骤2将不会执行 .
如果构建步骤2(测试)失败,则构建将标记为“不稳定”,而不是“失败” .
Email-ext 已经支持这些触发器 .
滚动到 Editable Email Notification 部分 .
单击 Advanced Settings... 按钮 .
查看 Triggers 部分 .
单击 Add Trigger 按钮 .
您想为“ Failure " and a trigger for " Unstable " (you will also probably want a trigger for " Success ”配置触发器
在"Failure"触发器中,编写构建失败时所需的电子邮件内容(构建步骤1失败将导致此问题) .
在"Unstable"触发器中,编写测试用例失败时所需的电子邮件内容 .
在"Success"触发器中,在一切成功并且您想要发送测试报告时,写下您想要的电子邮件内容 .
Alternative:
或者你可以查看Any Build Step插件(它应该允许后构建操作,如email-ext,作为构建步骤执行),以及 Conditional Build Step 插件(允许为每个构建步骤创建条件) . 当您想要触发email-ext构建步骤时,将两者结合起来并创建条件 . 但是我没有尝试过这个并不能保证这会起作用 .
而不是自定义电子邮件分机考虑将工作分成2个工作:
job 1构建并具有此post构建配置
仅在检查构建成功时使用触发器构建其他项目
将email-ext配置为仅在发生故障时发送邮件
job 2运行测试并发送邮件
对于这两个作业,在(作业)/配置/高级项目选项中设置作业参数
使用自定义工作区共享同一工作区
构建上/下游项目时的块构建以避免覆盖
如果您还希望将测试结果附加到作业1以防其成功,请在作业1中添加后期构建步骤聚合下游测试结果 .