使用单个配置文件在CC.NET中进行电子邮件组配置

时间:2009-07-30 15:27:52

标签: email configuration cruisecontrol.net usergroups

我们已经开始使用CC.NET进行持续集成,并且随着监控的项目数量的增加,我希望通过单个配置文件配置电子邮件警报。

我的意思是,我想在一个配置文件中列出所有项目配置文件引用的不同组中的用户列表:

<user name="user1" group="buildmasters" address="user1@company.com"/>
<user name="user2" group="internalapplications" address="user2@company.com"/>
<user name="user3" group="internalapplications" address="user3@company.com"/>
<user name="user4" group="externalapplications" address="user4@company.com"/>
<user name="user5" group="externalapplications" address="user5@company.com"/>

然后项目配置文件将引用正确的组:

<group name="internalapplications" notification="change"/>

因此,对于作为内部应用程序的不同项目,我将导入单个配置文件,然后设置内部应用程序组。我还想为所有内容添加构建主管,以便现在我可以跟踪人们是否遇到问题。

这意味着我希望有两个或更多组的用户,但我不知道是否可能:

<user name="user1" group="buildmaster, externalapplications" address="user1@company.com"/>

我一直在假设有一天我可以配置这个并且只有一个文件包含所有用户的电子邮件地址,但今天我已经去做了,我不确定它是否有效此

有谁可以描述他们是如何接近这个的?

2 个答案:

答案 0 :(得分:3)

您要做的是使用CC.Net Configuration Preprocessor

我发了一封email.config

<cb:define name="email-template" xmlns:cb="urn:ccnet.config.builder">
    <email from="buildadmin@server.com" mailhost="server" includeDetails="TRUE"
         mailhostUsername="buildadmin" mailhostPassword="pass">
      <users>
        <user name="dev" group="dev" address="dev@server.com"/>

      </users>
      <groups>
        <group name="buildmaster" notification="always"/>
        <group name="developers" notification="always"/>
      </groups>

    </email>
</cb:define>

并将其包含在需要的地方......

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">

    <cb:include href="C:\email.config" />

<project name="MyProject" queue="Build" queuePriority="1" >

    <cb:email-template >

    </cb:email-template>

</project>

<project name="MyProject2" queue="Build" queuePriority="1" >

    <cb:email-template >

    </cb:email-template>

</project>

</cruisecontrol>

答案 1 :(得分:1)

如何采取略微不同的方法。

通过电子邮件服务器管理群组,并将邮件发送到群组别名。

这样,在不同的组中拥有相同的用户是微不足道的,如果组成员身份发生变化,您也不需要更改配置文件。

使用Exchange执行此操作非常简单,不了解其他电子邮件系统。