2009-06-23 12 views
5

Quiero configurar CCNet a:CruiseControl.NET problema editor de correo electrónico

  1. Enviar mail a committers después de cada generación (independientemente del estado)
  2. Enviar correo a todos los demás desarrolladores vez que la compilación se rompe o es fija

Con cada nueva versión de CCNet el editor de correo electrónico se refactorizado (y supuestamente mejorado), pero todavía tengo el mismo problema: sólo los committers recibir notificaciones - si se rompe la construcción, otros no lo hacen los desarrolladores recibe el mensaje de correo electrónico. Entonces, o no obtengo el sistema, o hay un error no corregido durante mucho tiempo en el editor de correo electrónico.

Estoy usando el v1.4.4.83. Mi configuración de ejemplo (me quita el material irrelevante):

<email 
    includeDetails="true"> 
    <users> 
     <user name="user1" address="[email protected]" group="developers" /> 
     <user name="user2" address="[email protected]" group="developers" /> 
    </users> 
    <groups> 
      <group name="developers"> 
       <notifications> 
        <notificationType>Failed</notificationType> 
        <notificationType>Fixed</notificationType> 
       </notifications> 
      </group> 
    </groups> 
    <modifierNotificationTypes> 
     <NotificationType>Always</NotificationType> 
    </modifierNotificationTypes> 
</email>    
+0

Esto parece una función que nadie antes necesitaba, ¿podría publicarla en http://jira.public.thoughtworks.org/browse/CCNET? – skolima

+0

Lo curioso es que esto fue posible en versiones anteriores de CCNet (1.3 por lo que recuerdo). –

Respuesta

3

Creo que esto hace lo que quiere (es cierto, un año después de su pregunta).

NB: Usamos SVN, con un bloque <svn>. En CC.NET 1.4.xx, los bloques <email> admiten expresiones regulares para calcular direcciones de correo electrónico desde nombres de usuario SVN. Debería funcionar con otros bloques de control de origen, pero no he usado nada más que SVN.

Tenemos algo así como lo siguiente en nuestro bloque <publishers> (he modificado para que coincida con su especificación):

<email ... includeDetails="true"> 
    <!-- Developers get an email whenever the build status changes --> 
    <users> 
    <user name="Dev1" group="developer" address="[email protected]" /> 
    <user name="Dev2" group="developer" address="[email protected]" /> 
    </users> 
    <groups> 
    <group name="developer" notification="change" /> 
    </groups> 

    <!-- Committers get an email for every build they commit code for --> 
    <converters> 
    <regexConverter find="$" replace="@ourcompany.com" /> 
    </converters> 
    <modifierNotificationTypes> 
    <NotificationType>always</NotificationType> 
    </modifierNotificationTypes> 
</email> 

Así, [email protected] y [email protected] recibirá un correo electrónico cada vez que el estado de compilación cambia, y [svnuser] @ ourcompany.com recibirá un correo electrónico cuando la compilación que han confirmado el código finalice.

NB: si la compilación falla, los usuarios de svn que hayan cometido un código desde la última vez que lo consiguieron seguirán recibiendo correos electrónicos adicionales cada vez que finalice una compilación hasta que se corrija la compilación.

+0

Aceptaré su respuesta, aunque no puedo probar la solución: pasamos a Hudson CI hace un tiempo. Simplemente nos cansamos de la sopa de configuración XML y los errores de regresión. –

+0

@Igor: Hudson CI? No he oído hablar de eso antes. Aunque conozco CC bastante bien, ¡tiene muchas desventajas! Puedo echarle un vistazo en algún momento, aplausos por la mención. –

+0

http://hudson-ci.org/ ... mucho más amigable que CC.Está basado en Java, pero tiene algunos complementos orientados a .NET. Y tiene una GUI adecuada :) –

0
<email from="[email protected]" mailhost="xxxxxxxx.com" includeDetails="True"> 
      <users> 
       <user name="Dev Staff" group="group1" address="xxxxxxxxxxx"/> 
       <user name="QA Staff" group="group1" address="xxxxxxxxxxx"/> 
      </users> 
      <groups> 
       <group name="group1" notification="always"/> 
      </groups> 
      <modifierNotificationTypes> 
       <NotificationType>Always</NotificationType> 
      </modifierNotificationTypes> 
     </email> 

Esto funciona, pero tenga cuidado. Enviar a cada desarrollador un correo electrónico por cada compilación en un sistema continuo está pidiendo que se ignoren sus correos electrónicos. El único correo electrónico que envío a todos es la compilación del instalador nocturno.

+1

Alex, NO QUIERO enviar un correo electrónico para CADA compilación a CADA desarrollador. Creo que lo dejé claro al comienzo de la pregunta (ver 1. y 2.). –

+0

no solo se ignorarían los correos electrónicos, sino que, dependiendo de las reglas de su host SMTP, ¡podría bloquearlo o filtrarlo a nivel de ISP! – TheOptimusPrimus

1

Creo que esto hace lo que quiere ... estamos ejecutando la versión 1.4.3 para YMMV. Los desarrolladores solo reciben correos electrónicos cuando hay un cambio en el estado fijo/fallido, mientras que el PM recibe un correo electrónico cada vez que hay una compilación.

<groups> 
    <group name="Always"> 
     <name>Always</name> 
     <notification>Always</notification> 
    </group> 
    <group name="developers"> 
     <name>developers</name> 
     <notification>Change</notification> 
    </group> 
</groups> 
<users> 
    <user name="dev1"> 
     <address>...</address> 
     <group>developers</group> 
     <name>...</name> 
    </user> 
    <user name="pm1"> 
     <address>...</address> 
     <group>Always</group> 
     <name>...</name> 
    </user> 
    <user name="dev2"> 
     <address>...</address> 
     <group>developers</group> 
     <name>...</name> 
    </user> 
    <user name="dev3"> 
     <address>...</address> 
     <group>developers</group> 
     <name>...</name> 
    </user> 
</users> 
Cuestiones relacionadas