Настройка группы электронной почты в CC.NET с использованием одного файла конфигурации
-
05-07-2019 - |
Вопрос
Мы начали использовать CC.NET для непрерывной интеграции, и по мере увеличения количества отслеживаемых проектов я хотел бы настроить оповещения по электронной почте через один файл конфигурации.
Под этим я подразумеваю, что мне хотелось бы иметь список пользователей в разных группах в одном файле конфигурации, на который ссылаются ВСЕ файлы конфигурации проекта:
<user name="user1" group="buildmasters" address="user1@company.com"/>
<user name="user2" group="internalapplications" address="user2@company.com"/>
<user name="user3" group="internalapplications" address="user3@company.com"/>
<user name="user4" group="externalapplications" address="user4@company.com"/>
<user name="user5" group="externalapplications" address="user5@company.com"/>
Тогда файл конфигурации проекта будет ссылаться на правильную группу:
<group name="internalapplications" notification="change"/>
Таким образом, для разных проектов, которые являются внутренними приложениями, я бы импортировал один файл конфигурации, а затем установил внутреннюю группу приложений. Я также хотел бы добавить buildmasters для всего, чтобы на данный момент я мог отслеживать людей, если у них возникли проблемы.
Это означало бы, что я хотел бы, например, иметь пользователя в двух или более группах, но я не знаю, возможно ли это:
<user name="user1" group="buildmaster, externalapplications" address="user1@company.com"/>
Я работал, исходя из того, что однажды я мог бы настроить это и иметь только один файл со всеми адресами электронной почты пользователей, но сегодня я решил это сделать и не уверен, что он работает как это.
Кто-нибудь может описать, как они подошли к этому?
Решение
Вам нужно использовать препроцессор конфигурации CC.Net р>
Я сделал email.config
<cb:define name="email-template" xmlns:cb="urn:ccnet.config.builder">
<email from="buildadmin@server.com" mailhost="server" includeDetails="TRUE"
mailhostUsername="buildadmin" mailhostPassword="pass">
<users>
<user name="dev" group="dev" address="dev@server.com"/>
</users>
<groups>
<group name="buildmaster" notification="always"/>
<group name="developers" notification="always"/>
</groups>
</email>
</cb:define>
и включил его, где это необходимо ...
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:include href="C:\email.config" />
<project name="MyProject" queue="Build" queuePriority="1" >
<cb:email-template >
</cb:email-template>
</project>
<project name="MyProject2" queue="Build" queuePriority="1" >
<cb:email-template >
</cb:email-template>
</project>
</cruisecontrol>
Другие советы
Как насчет немного другого подхода.
Управляйте группами через свой почтовый сервер и отправляйте письма на псевдоним группы.
Таким образом, тривиально иметь одинаковых пользователей в разных группах, к тому же вам не нужно менять файлы конфигурации, если меняется членство в группе.
Делать это с Exchange довольно легко, не знаю о других системах электронной почты.