Проблема издателя электронной почты CruiseControl.NET
Я хочу настроить ccnet для:
- Отправлять почту коммиттерам после каждой сборки (независимо от статуса)
- Отправлять почту всем другим разработчикам, когда сборка нарушается или исправляется
С каждой новой версией 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 ответа
Я считаю, что это делает то, что вы хотите (по общему признанию, через год после вашего вопроса).
NB: мы используем 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.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>
<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>
Это работает, но будьте осторожны. Отправка каждому разработчику электронной почты для каждой сборки в непрерывной системе требует, чтобы ваши письма игнорировались. Единственное электронное письмо, которое я посылаю всем, - это ночная сборка установщика.