2

我们已经开始使用 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"/>

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

谁能描述他们是如何解决这个问题的?

4

2 回答 2

3

你想要做的是使用CC.Net 配置预处理器

我做了一个 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>
于 2009-10-02T00:25:59.947 回答
1

采取稍微不同的方法怎么样。

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

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

用 Exchange 做这件事很容易,不知道其他电子邮件系统。

于 2009-07-30T15:34:41.060 回答