从文件中填充CruiseControl电子邮件发布者用户地址

时间:2012-09-07 15:05:23

标签: email cruisecontrol.net publisher

目前,我的CruiseControl.NET电子邮件发布者在构建配置文件

中有硬编码的用户列表
<publishers>
    [ ... ]
    <email from="autobuild@domain.com" mailhost="stmp.domain.com" mailport="25" includeDetails="TRUE">
        <replyto>buildserver@domain.com</replyto>
        <users>
            <user name="a.user" group="buildmaster" address="a.user@domain.com"/>
            <user name="b.user" group="developers" address="b.user@domain.com"/>
        </users>
        <groups>
            <group name="developers">
                <notifications>
                    <notificationType>Failed</notificationType>
                    <notificationType>Fixed</notificationType>
                </notifications>
            </group>
            <group name="buildmaster">
                <notifications>
                    <notificationType>Always</notificationType>
                </notifications>
            </group>
        </groups>
        <modifierNotificationTypes>
            <NotificationType>Failed</NotificationType>
            <NotificationType>Fixed</NotificationType>
        </modifierNotificationTypes>
    </email>
</publishers>

我希望能够从外部文件中读取用户列表。我们有几十个构建文件,我想简化添加新用户和删除不再感兴趣的用户的过程。

我可以这样做吗?

1 个答案:

答案 0 :(得分:2)

是 - 只需查看配置预处理器,特别是Include部分。

您可以将<users/>节点移动到一个名为“{1}}”的单独文件中。 email_users.xml并将其保存在一个位置,然后将其与<cb:include href="email_users.xml"/>

一起包含在内

示例email_users.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<cb:config-template xmlns:cb="urn:ccnet.config.builder"
  xmlns="http://thoughtworks.org/ccnet/1/5">
  <users>
    <user name="a.user" group="buildmaster" address="a.user@domain.com"/>
    <user name="b.user" group="developers" address="b.user@domain.com"/>
  </users>
</cb:config-template>

请记住,为了实现这一点,您的主文件应该以

开头
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"
  xmlns="http://thoughtworks.org/ccnet/1/5">