2009-07-30 6 views
2

Nous avons commencé à utiliser CC.NET pour l'intégration continue et comme le nombre de projets surveillés se construit, je voudrais configurer les alertes email via un seul fichier de configuration.Email Group Configuration dans CC.NET en utilisant un seul fichier de configuration

Ce que je veux dire par là que je voudrais avoir une liste des utilisateurs dans 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="[email protected]"/> 
<user name="user2" group="internalapplications" address="[email protected]"/> 
<user name="user3" group="internalapplications" address="[email protected]"/> 
<user name="user4" group="externalapplications" address="[email protected]"/> 
<user name="user5" group="externalapplications" address="[email protected]"/> 

Ensuite, la configuration du projet fichier de référence du groupe correct:

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

donc, pour les différents projets qui sont des applications internes j'importeraient le fichier de configuration unique puis définissez le groupe d'applications internes. Je voudrais également ajouter des maîtres de build pour tout ce qui fait que pour l'instant je peux garder la trace des gens s'ils ont des problèmes.

Cela voudrait dire que je voudrais avoir un utilisateur en deux groupes, par exemple ou plus, mais je ne sais pas s'il est possible:

<user name="user1" group="buildmaster, externalapplications" address="[email protected]"/> 

Je travaille sous l'hypothèse qu'un jour Je pourrais configurer cela et avoir juste 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 ça.

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

Répondre

3

Ce que vous voulez faire est d'utiliser CC.Net Configuration Preprocessor

J'ai fait un email.config

<cb:define name="email-template" xmlns:cb="urn:ccnet.config.builder"> 
    <email from="[email protected]" mailhost="server" includeDetails="TRUE" 
     mailhostUsername="buildadmin" mailhostPassword="pass"> 
     <users> 
     <user name="dev" group="dev" address="[email protected]"/> 

     </users> 
     <groups> 
     <group name="buildmaster" notification="always"/> 
     <group name="developers" notification="always"/> 
     </groups> 

    </email> 
</cb:define> 

et l'a inclus le cas échéant ...

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

Ça a l'air parfait, merci Ryu! –

1

Que diriez-vous d'adopter une approche légèrement différente.

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

De cette façon, il est trivial d'avoir les mêmes utilisateurs dans différents groupes, et 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, ne sais pas à propos d'autres systèmes de messagerie.

+0

Vive Glen, c'est une bonne idée Je n'avais pas pensé à obtenir la fonctionnalité que je veux en utilisant une approche différente - je vais le faire maintenant. Dans ce cas, nous utilisons Lotus Notes qui est entreprise et je n'ai pas un accès facile et gratuit au serveur e-mail pour le configurer moi-même (je ne veux pas compter sur notre équipe e-mail comme je le souhaite ça fait cette année ...) –