【问题标题】:To get build status through environment variable通过环境变量获取构建状态
【发布时间】:2012-07-24 12:11:07
【问题描述】:

我正在使用 jenkins 进行持续集成。 为了我的构建目的,我使用 Ant 任务触发电子邮件。我无法找到一个环境变量来传递 ant 以发送电子邮件构建状态(成功/失败/稳定)。 我想知道如何获取构建状态的环境变量?..如果不可用,构建状态的替代选项是什么?

提前致谢

瓦尔盖塞

【问题讨论】:

    标签: ant hudson jenkins hudson-plugins jenkins-plugins


    【解决方案1】:

    既然有两个很棒的插件可以做到这一点,为什么还要使用 ANT 从 Jenkins 发送电子邮件?

    默认邮件通知非常好,如果您想拥有更多控制权
    建议使用Email-ext plugin,非常全面。

    如果仍希望使用 ANT 发送您的邮件通知,包括状态
    您必须将您的流程分为两个步骤,
    第一部分运行构建,第二部分运行 ANT 脚本以报告状态。

    在这种情况下,您需要通过 Parameterized Build 插件从第一个作业触发第二个作业 -
    在这里查看我的答案:
    trigger other configuration and send current build status with Jenkins

    【讨论】:

    • 我会告诉你我的情况。工作A和B在那里。作业 A 轮询 svn 并将变更集复制到我的项目目录(作业 B)。在这里,我使用提升的构建在成功完成作业 B 后获取电子邮件通知。在作业 B 中,另一个构建是由定期计划触发的。为此,我在构建后操作中放置了一个电子邮件分机。我担心的是,如果通过提交构建,即从工作 A 到工作 B,在完成工作 B 构建后,它将在工作 B 的构建后操作中作为提升的电子邮件分机和电子邮件分机。所以我会得到两个通知..(因为发送邮件提交者而被提升)。
    • 我认为您可以为此使用单个作业:作业 A 可以轮询 SVN,并且该作业的构建操作将复制文件、运行构建或其他任何操作。另一种选择是使用“参数化构建”插件而不是电子邮件来触发作业 B,如上所述。
    【解决方案2】:

    在作业完成运行之前不会设置构建状态,因此没有简单的方法可以将构建状态推送到构建本身触发的进程。您可以通过 API 拉取构建状态,但由于上述约束,这必须是外部触发的过程。您不使用内置电子邮件支持或诸如this 之类的优秀电子邮件扩展插件之一的任何原因?

    【讨论】:

    • 我会告诉你我的情况。工作A和B在那里。作业 A 轮询 svn 并将变更集复制到我的项目目录(作业 B)。在这里,我使用提升的构建在成功完成作业 B 后获取电子邮件通知。在作业 B 中,另一个构建是由定期计划触发的。为此,我在构建后操作中放置了一个电子邮件分机。我担心的是,如果通过提交构建,即从工作 A 到工作 B,在完成工作 B 构建后,它将在工作 B 的构建后操作中作为提升的电子邮件分机和电子邮件分机。所以我会得到两个通知..(因为发送邮件提交者而被提升)。
    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 2015-06-09
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多