CruiseControl.NET电子邮件发布者问题

时间:2009-06-23 06:59:46

标签: cruisecontrol.net

我想将ccnet设置为:

  1. 每次构建后发送邮件给提交者(无论状态如何)
  2. 在构建中断或修复时向所有其他开发人员发送邮件
  3. 对于CCNet的每个新版本,电子邮件发布者都会被重构(并且据称有所改进),但我仍然遇到同样的问题:只有提交者得到通知 - 如果构建中断,其他开发人员不会收到电子邮件消息。所以要么我没有得到系统,要么电子邮件发布者有一个长期未修复的错误。

    我正在使用v1.4.4.83。我的示例配置(我删除了不相关的东西):

    <email 
        includeDetails="true">
        <users>
            <user name="user1" address="user1@mail.com" group="developers" /> 
            <user name="user2" address="user2@mail.com" group="developers" /> 
        </users>
        <groups>
                <group name="developers">
                    <notifications>
                        <notificationType>Failed</notificationType>
                        <notificationType>Fixed</notificationType>
                    </notifications>
                </group>
        </groups>
        <modifierNotificationTypes>
            <NotificationType>Always</NotificationType>
        </modifierNotificationTypes>
    </email>            
    

3 个答案:

答案 0 :(得分:3)

我相信这样做符合你的要求(诚然,问题发生一年后)。

注意:我们使用带有<svn>块的SVN。在CC.NET 1.4.xx中,<email>块支持正则表达式来计算SVN用户名中的电子邮件地址。它应该与其他源控制块一起使用,但除了SVN之外我没有使用任何东西。

我们的<publishers>块中包含以下内容(我已将其修改为符合您的规范):

<email ... includeDetails="true">
  <!-- Developers get an email whenever the build status changes -->
  <users>
    <user name="Dev1" group="developer" address="dev1@ourcompany.com" />
    <user name="Dev2" group="developer" address="dev2@ourcompany.com" />
  </users>
  <groups>
    <group name="developer" notification="change" />
  </groups>

  <!-- Committers get an email for every build they commit code for -->
  <converters>
    <regexConverter find="$" replace="@ourcompany.com" />
  </converters>
  <modifierNotificationTypes>
    <NotificationType>always</NotificationType>
  </modifierNotificationTypes>
</email>

因此,dev1 @ourcompany.com和dev2@ourcompany.com会在构建状态发生变化时收到电子邮件,[svnuser] @ ourcompany.com会在他们为完成构建而提交代码的构建时收到电子邮件。

注意:如果构建失败,那么自上次成功以来已经提交代码的svn用户将在每次构建完成时继续获取更多电子邮件,直到构建得到修复。

答案 1 :(得分:1)

我认为这样做你想要的......我们正在运行版本1.4.3,所以YMMV。 Devs只有在固定/失败状态发生变化时才会收到电子邮件,而PM会在每次构建时收到电子邮件。

<groups>
   <group name="Always">
        <name>Always</name>
        <notification>Always</notification>
    </group>
    <group name="developers">
        <name>developers</name>
        <notification>Change</notification>
    </group>
</groups>
<users>
    <user name="dev1">
        <address>...</address>
        <group>developers</group>
        <name>...</name>
    </user>
    <user name="pm1">
        <address>...</address>
        <group>Always</group>
        <name>...</name>
    </user>
    <user name="dev2">
        <address>...</address>
        <group>developers</group>
        <name>...</name>
    </user>
    <user name="dev3">
        <address>...</address>
        <group>developers</group>
        <name>...</name>
    </user>
</users>

答案 2 :(得分:0)

<email from="CruiseControlBuild@xxxxxxxx.com" mailhost="xxxxxxxx.com" includeDetails="True">
            <users>
                <user name="Dev Staff" group="group1" address="xxxxxxxxxxx"/>
                <user name="QA Staff" group="group1" address="xxxxxxxxxxx"/>
            </users>
            <groups>
                <group name="group1" notification="always"/>
            </groups>
            <modifierNotificationTypes>
                <NotificationType>Always</NotificationType>
            </modifierNotificationTypes>
        </email>

这有效,但要小心。向每个开发人员发送连续系统中每个构建的电子邮件,都要求忽略您的电子邮件。我发给每个人的唯一电子邮件是夜间安装程序构建。