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