【问题标题】:How to send an email from Jenkins only in a release?如何仅在发布中从 Jenkins 发送电子邮件?
【发布时间】:2023-03-16 01:50:02
【问题描述】:

我试图解决这个问题,并搜索论坛等并为自己尝试,但没有成功。

我们有一个 jenkins 工作,在那里我们使用 Release Plugin(带有标准配置)

在工作中然后我们在左侧有“Perform Maven Release”来生成一个版本(标记、更改 pom 等)这个工作完美。

我们想在发布完成后向团队发送一封电子邮件。

我尝试了发布插件设置的环境变量(默认为 IS_M2RELEASEBUILD),并与 email-ext 插件插件结合使用,我可以在其中附加一个 groovy 脚本(advanced=>trigger=>script trigger )

我尝试了很多脚本来激活电子邮件,但都没有成功,我最后的机会是:

def env = System.getenv()
env['IS_M2RELEASEBUILD'] == 'true'

但是当我执行发布时,我们没有发送电子邮件(所以这个脚本将条件评估为 false 或其他)

有人在他的 Jenkins 中有这个设置吗?

非常感谢!

【问题讨论】:

    标签: maven jenkins release


    【解决方案1】:

    您需要使用“可编辑电子邮件通知”作为“构建后操作”并粘贴

    def env = build.getEnvironment();
    String isRelease = env['IS_M2RELEASEBUILD'];
    logger.println "IS_M2RELEASEBUILD="+isRelease;
    if ( isRelease == null || isRelease.equals('false')) {
      logger.println "cancel=true;";
      cancel=true;
    }
    

    作为预发送脚本,在“项目收件人列表”中填写您的电子邮件并添加“成功”-触发器。 (前提是你没有改变“Maven release build”中默认的“Release envrionment variable”)

    【讨论】:

    • 而且...是的!有用! +1 我尝试了很多脚本和设置,我不知道为什么我失败了,但实际上你的脚本现在正在运行。
    【解决方案2】:

    您是否尝试过在发布构建成功完成后运行另一个构建并让该作业发送电子邮件,可能是通过运行 shell 脚本。

    【讨论】:

      【解决方案3】:

      这不是答案,只是一个建议(我无法添加 cmets)。您是否尝试在构建后和构建前步骤中回显该环境变量?

      【讨论】:

        【解决方案4】:

        https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin

        此插件允许您配置电子邮件通知的各个方面。您可以自定义电子邮件的发送时间、收件人以及电子邮件内容。

        【讨论】:

        • 谢谢。我正在使用这个插件并使用我上面编写的常规代码来“触发”电子邮件。问题是我不知道电子邮件分机插件与发布操作连接的确切代码。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多