Настройка группы электронной почты в CC.NET с использованием одного файла конфигурации

StackOverflow https://stackoverflow.com/questions/1207355

Вопрос

Мы начали использовать 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 довольно легко, не знаю о других системах электронной почты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top