首页 文章

Jenkins:根据每个构建步骤发送电子邮件,结果是同一个Jenkins Job

提问于
浏览
4

我只是想知道如何根据同一个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 回答

  • 0

    在正常配置中,如果构建步骤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构建步骤时,将两者结合起来并创建条件 . 但是我没有尝试过这个并不能保证这会起作用 .

  • 10

    而不是自定义电子邮件分机考虑将工作分成2个工作:

    • job 1构建并具有此post构建配置

    • 仅在检查构建成功时使用触发器构建其他项目

    • 将email-ext配置为仅在发生故障时发送邮件

    • job 2运行测试并发送邮件

    对于这两个作业,在(作业)/配置/高级项目选项中设置作业参数

    • 使用自定义工作区共享同一工作区

    • 构建上/下游项目时的块构建以避免覆盖

    如果您还希望将测试结果附加到作业1以防其成功,请在作业1中添加后期构建步骤聚合下游测试结果 .

相关问题