R – CruiseControl.NET email publisher problem

cruisecontrol.net

I want to set up ccnet to:

  1. Send mail to committers after each build (regardless of the status)
  2. Send mail to all other developers when the build breaks or is fixed

With every new version of CCNet the email publisher gets refactored (and supposedly improved), but I still have the same problem: only the committers get notified – if the build breaks, other developers don't get the email message. So either I don't get the system, or there is a long-unfixed bug in the email publisher.

I'm using the v1.4.4.83. My example configuration (I removed the irrelevant stuff):

<email 
    includeDetails="true">
    <users>
        <user name="user1" address="user1@mail.com" group="developers" /> 
        <user name="user2" address="user2@mail.com" group="developers" /> 
    </users>
    <groups>
            <group name="developers">
                <notifications>
                    <notificationType>Failed</notificationType>
                    <notificationType>Fixed</notificationType>
                </notifications>
            </group>
    </groups>
    <modifierNotificationTypes>
        <NotificationType>Always</NotificationType>
    </modifierNotificationTypes>
</email>            

Best Answer

I believe that this does what you want (admittedly, a year after your question).

NB: We use SVN, with a <svn> block. In CC.NET 1.4.xx, <email> blocks support regular expressions to work out email addresses from SVN usernames. It should work with other source control blocks, but I haven't used anything but SVN.

We have something like the following in our <publishers> block (I've modified it to match your spec):

<email ... includeDetails="true">
  <!-- Developers get an email whenever the build status changes -->
  <users>
    <user name="Dev1" group="developer" address="dev1@ourcompany.com" />
    <user name="Dev2" group="developer" address="dev2@ourcompany.com" />
  </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>

So, dev1@ourcompany.com and dev2@ourcompany.com will get an email whenever the build status changes, and [svnuser]@ourcompany.com will get an email when the build they've committed code for finishes building.

NB: if the build fails, svn users who have committed code since it last succeeded will continue to get further emails each time a build finishes until the build is fixed.

Related Topic