当前位置: 首页 > 面试题库 >

仅当手动触发构建时才如何向请求者发送电子邮件?

龙佐
2023-03-14
问题内容

我想在詹金斯(Jenkins)中配置一个项目,以将电子邮件发送到常规计划生成的收件人组,但仅在手动触发生成的情况下才发送给请求者。这可能吗?


问题答案:

您应该能够通过使用可编辑电子邮件通知生成后操作的“脚本-
构建后”触发器来完成此操作。您可以运行groovy脚本,最后一行评估为布尔值,该布尔值确定是否发送电子邮件。下面的屏幕截图显示了触发部分,该部分检查以查看构建是否由用户(手动)启动。

但是,该脚本只会告诉您构建的直接原因是否是用户的手动操作。根据构建管道的设置方式,上游作业之一可能是手动启动的,因此我不确定在这种情况下是否要发送电子邮件。如果这样做,则必须遍历所有构建原因并寻找手动原因。

def boolean wasStartedManually(causes) {
    boolean manuallyStarted = false
    causes.each { cause ->
        if (cause.class == hudson.model.Cause$UserIdCause) {
            manuallyStarted = true
        }

        if (!manuallyStarted) {
            if (cause.class == hudson.model.Cause$UpstreamCause) {
                manuallyStarted = wasStartedManually(cause.upstreamCauses)
            }      
        }


    }
    return manuallyStarted
}

wasStartedManually(build.getCauses())

您将需要向您的作业中添加2个构建后电子邮件操作,一个用于手动触发该作业时,另一个则用于非手动提交作业。对于后者,您将运行相同的脚本,但只取反结果。



 类似资料:
  • 我使用pgsql设置触发器,当更新表dataset(将状态更改为Finished)时,它将使用dataset电子邮件值自动向电子邮件帐户发送电子邮件,并将此电子邮件保存在服务器中 但是我不知道如何在触发函数中写发送邮件,以及在服务器中发送邮件。先谢谢你了 Pg版本是9.1,CentOS 5.8

  • 如果我只在生产者端发送一条记录并等待,生产者何时将记录发送给经纪人?在Kafka文档中,我找到了名为“linger.ms”的配置,它说: 一旦我们得到 根据以上文件,我有两个问题。 > 如果生产者收到的数据达到batch.size,它会立即触发发送一个只包含一个批次的请求给代理?但是正如我们所知,一个请求可以包含许多批次,那么它是如何发生的呢? 这是否意味着即使是收到的数据也不足以批量处理。大小,

  • 问题内容: 如何告诉Jenkins / Hudson仅针对Git树中特定项目的更改触发构建? 问题答案: Git插件有一个选项(排除的区域),可使用正则表达式根据提交中的文件是否与排除的区域正则表达式匹配来确定是否跳过构建。 不幸的是,当前的Git插件目前没有“包含区域”功能(1.15)。但是,有人在GitHub上发布了可在Jenkins和Hudson上运行的补丁,这些补丁实现了所需的功能。 构建

  • 我已经创建了一个从谷歌表单收集数据的电子表格。当某个单元格的值达到某个数字以上时,我想在表格上给我的账户发一封电子邮件。然而,我似乎不知道如何做到这一点。我已经意识到我不能使用通过右键单击单元格获得的条件格式选项。我只能通过使用该选项来更改单元格/文本颜色。我必须使用脚本才能自动执行此任务吗? (这张表收集了一个班级的缺勤/出勤数据,当缺勤率达到某个值(15%)时,我希望这张表能就此通过电子邮件发

  • 问题内容: 考虑一个表作为,我想补充一个在此表作为 有什么简单的方法可以在有评论的地方写东西吗?要将电子邮件发送到从table检索到的所有电子邮件ID中。 我在XAMPP(phpmyadmin)中使用MySQL。 问题答案: 我反对这种解决方案。将发送电子邮件的负担放在数据库服务器中可能会非常糟糕。 在我看来,您应该做的是创建一个表,将要发送的电子邮件排队,并有一个过程检查是否有要发送的电子邮件,

  • 问题内容: 在我的应用程序中,我使用的是Django Allauth。我没有任何用户注册表格。管理员将通过上传包含用户信息的Excel文件来注册用户。我已完成所有这些操作,并且通过自动生成密码将用户保存在用户表中。上传用户列表并将其保存在数据库中之后,我想向每个用户发送重置密码电子邮件。 在allauth重置密码中,您首先需要进入重置页面并输入您的电子邮件。然后会发送一封电子邮件,指示您更改密码