Проблема издателя электронной почты CruiseControl.NET - PullRequest
5 голосов
/ 23 июня 2009

Я хочу настроить ccnet на:

  1. Отправка писем коммиттерам после каждой сборки (независимо от статуса)
  2. Отправка почты всем другим разработчикам, когда сборка нарушается или исправляется

С каждой новой версией 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 ]

3 голосов
/ 07 декабря 2010

Я считаю, что это делает то, что вы хотите (правда, через год после вашего вопроса).

Примечание: мы используем 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 голос
/ 09 декабря 2009

Я думаю, это делает то, что вы хотите ... мы работаем с версией 1.4.3, так что YMMV. Разработчики получают электронные письма только тогда, когда происходит изменение в фиксированном / неудачном статусе, в то время как 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>
0 голосов
/ 23 июня 2009
<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>

Это работает, но будьте осторожны. Отправка каждому разработчику по электронной почте для каждой сборки в непрерывной системе требует, чтобы ваши письма игнорировались. Единственное электронное письмо, которое я посылаю всем, - это ночная сборка установщика.

...