Domanda

Abbiamo iniziato a utilizzare CC.NET per l'integrazione continua e man mano che aumenta il numero di progetti monitorati, vorrei configurare gli avvisi e-mail tramite un singolo file di configurazione.

Ciò che intendo con questo è che vorrei avere un elenco degli utenti in diversi gruppi in un singolo file di configurazione a cui fa riferimento TUTTI i file di configurazione del progetto:

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

Quindi il file di configurazione del progetto farà riferimento al gruppo corretto:

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

Quindi per i diversi progetti che sono applicazioni interne importerei il singolo file di configurazione, quindi imposterò il gruppo di applicazioni interne. Vorrei anche aggiungere buildmaster per tutto in modo che per ora posso tenere traccia delle persone se stanno avendo problemi.

Ciò significherebbe che vorrei avere un utente in due o più gruppi, ad esempio, ma non so se sia possibile:

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

Ho lavorato sul presupposto che un giorno avrei potuto configurarlo e avere un solo file con tutti gli indirizzi e-mail degli utenti, ma oggi sono andato a farlo e non sono sicuro che funzioni come questo.

Qualcuno può descrivere come si sono avvicinati a questo?

È stato utile?

Soluzione

Quello che vuoi fare è usare Preprocessore di configurazione CC.Net

Ho creato un indirizzo 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>

e incluso se necessario ...

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

Altri suggerimenti

Che ne dici di adottare un approccio leggermente diverso.

Gestisci i gruppi tramite il tuo server di posta elettronica e invia mail all'alias di gruppo.

In questo modo è banale avere gli stessi utenti in gruppi diversi, inoltre non è necessario modificare i file di configurazione se l'appartenenza al gruppo cambia.

Farlo con Exchange è abbastanza semplice, non si conoscono altri sistemi di posta elettronica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top