Question

Nous avons commencé à utiliser CC.NET pour une intégration continue et à mesure que le nombre de projets contrôlés augmente, j'aimerais configurer les alertes par courrier électronique via un seul fichier de configuration.

Ce que je veux dire par là est que j'aimerais avoir une liste des utilisateurs de différents groupes dans un seul fichier de configuration qui est référencé par TOUS les fichiers de configuration du projet:

<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"/>

Ensuite, le fichier de configuration du projet référencera le groupe correct:

<group name="internalapplications" notification="change"/>

Donc, pour les différents projets qui sont des applications internes, je voudrais importer le fichier de configuration unique, puis définir le groupe d'applications internes. J'aimerais également ajouter des maîtres de construction à tout ce qui permet de garder une trace des personnes qui rencontrent des problèmes.

Cela voudrait dire que j'aimerais par exemple avoir un utilisateur dans deux groupes ou plus, mais je ne sais pas si c'est possible:

<user name="user1" group="buildmaster, externalapplications" address="user1@company.com"/>

J'ai travaillé sur l'hypothèse qu'un jour, je pourrais configurer cela et n'avoir qu'un seul fichier avec toutes les adresses e-mail des utilisateurs, mais aujourd'hui, je suis allé le faire et je ne suis pas sûr que cela fonctionne comme ceci.

Quelqu'un peut-il décrire comment ils ont abordé cette question?

Était-ce utile?

La solution

Ce que vous voulez faire est d'utiliser Préprocesseur de configuration CC.Net

J'ai créé un 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>

et inclus si nécessaire ...

<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>

Autres conseils

Pourquoi ne pas adopter une approche légèrement différente.

Gérez les groupes via votre serveur de messagerie et envoyez des messages à l'alias du groupe.

De cette façon, il est trivial d'avoir les mêmes utilisateurs dans différents groupes. De plus, vous ne devriez pas avoir besoin de changer vos fichiers de configuration si l'appartenance au groupe change.

Faire cela avec Exchange est assez facile, je ne connais pas les autres systèmes de messagerie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top