自定义MailNotifier中失败的构建的URL

时间:2014-08-08 11:03:31

标签: buildbot

当我的buildbot失败时,它被配置为发送电子邮件。

目前的配置是:

mailNotify = MailNotifier(fromaddr="****@****.com",
sendToInterestedUsers=True,
extraRecipients=['*****@*****.com', '****@****.com'],
relayhost="mail.****.com",
smtpPort=587,
addLogs = True,
addPatch = True,
useTls=True,
smtpUser="****@****.com",
smtpPassword="****"
mode="failing")

我的本​​地网络中有一个buildmaster设置,位于192.168.1.11。因此,当收到电子邮件时,它包含以下信息:

Full details are available at:
 http://192.168.1.11:8020/builders/BuilderName/builds/136

Buildbot URL: http://192.168.1.11:8020/

除此之外,我有一个可公开访问的服务器,通过它我可以访问buildbot,即https://mydomain.com/buildbot/

我想要的是

Full details are available at:
https://mydomain.com/buildbot/builders/BuilderName/builds/136

Buildbot URL: https://mydomain.com/buildbot/

我不想重写整个消息格式化程序,但我找不到办法做到这一点。它甚至可能吗?

1 个答案:

答案 0 :(得分:2)

AFAIK最好的方法是自己编写messageFormatter()。这不是什么痛苦。我已经为我的buildbot做了它,它就像一个魅力。

如果您查看来源buildbot\status\mail.py,则会有一个名为defaultMesage(...)的函数。只需在buildbot的配置中覆盖它,并将其传递给MailNotifier构造函数!最有可能你必须改变这一行:108

def myMessageFormatter(mode, name, build, results, master_status)
    # Copy everything from buildbot\status\mail.py:defaultMessage()

    # Change this to point to https://mydomain.com/buildbot/
    if master_status.getURLForThing(build):
        text += "Full details are available at:\n %s\n" % master_status.getURLForThing(build)
    text += "\n"