将我们的一台生成服务器升级到最新版本的CCNET后,它停止向修改器组发送电子邮件。我们使用Mercurial进行源代码控制,版本2.3.2安装在构建服务器上。CCNetModifyingUsers <user>将CCNET 1.6升级到1.8升级后的值更改
buildmasters组仍然得到电子邮件,但不修饰:
<email mailport="25" includeDetails="true" useSSL="false">
<from>[email protected]</from>
<mailhost>###.###.##.###</mailhost>
<users>
<user name="Name" group="buildmasters" address="[email protected]"/>
</users>
<groups>
<group name="buildmasters">
<notifications>
<NotificationType>Always</NotificationType>
</notifications>
</group>
</groups>
<converters>
<regexConverter find="$" replace="@company.com" />
</converters>
<modifierNotificationTypes>
<NotificationType>Always</NotificationType>
</modifierNotificationTypes>
<subjectSettings>
<subject buildResult="Success" value="Build Status - SUCCESSFUL - ${CCNetProject} - ${CCNetLabel}" />
<subject buildResult="Fixed" value="Build Status - HAS BEEN FIXED - ${CCNetProject} - ${CCNetLabel}" />
<subject buildResult="StillBroken" value="Build Status - FAILED - ${CCNetProject}" />
<subject buildResult="Broken" value="Build Status - FAILED - ${CCNetProject}" />
<subject buildResult="Exception" value="Build Status - SERVER EXCEPTION - ${CCNetProject} - a serious error has occurred" />
</subjectSettings>
<attachments></attachments>
通过构建日志我注意到,<CCNetModifyingUsers>
下<user>
值发生了如下变化挖后:
从(CCNET 1.6 ):
<integrationProperties>
...
<CCNetModifyingUsers>
<user>flast</user>
<user>flast</user>
</CCNetModifyingUsers>
...
</integrationProperties>
为(CCNET 1.8):
<integrationProperties>
...
<CCNetModifyingUsers>
<user>First Last</user>
<user>First Last</user>
</CCNetModifyingUsers>
...
</integrationProperties>
不知道<CCNetModifyingUsers>
下<user>
价值如何被填充或如何解决它。
更新#1:我试图看看是否将<converter>
更改为ldapConverter将解决我的问题。
更新#2:仍在试图乱用ldapConverter:
<ldapConverter domainName="Name.corp" ldapLogOnUser="name" ldapLogOnPassword="pswd" />
这个版本抛出和异常:
EmailPublisher异常信息:System.FormatException:指定的字符串不是形式需要一个电子邮件地址。 在System.Net.Mime.MailBnfHelper.ReadMailAddress(字符串数据,的Int32 &偏移,字符串&的displayName) 在System.Net.Mail.MailAddressCollection.ParseValue(字符串地址) 在ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher。 GetMailMessage(字符串from,String to,String replyto,String subject,String messageText,String workingFolder,String []附件) at ThoughtWorks.CruiseControl.Core.Publishers.EmailPublisher.SendMessage(String from,String to,String replyto,String subject ,字符串信息,字符串workingFolder)
虽然此:
<ldapConverter domainName="Name.corp" ldapLogOnUser="name" ldapLogOnPassword="pswd" ldapQueryField="userPrincipalName"/>
成功构建,但不发送电子邮件到修饰符。
更新#3:
我把下面的临时修复到位:
<converters>
<regexConverter find="(?!^.?).(?!.{0}$).* " replace="" />
<regexConverter find="$" replace="@company.com" />
</converters>
但是,由于它不包括以下情况:
- 人的水银
username
不匹配他们的电子邮件地址'名称 - 有双人(三重?)名或姓
更新#4:
将不得不通过源代码,看看我是否能追查究竟是什么导致了这些问题......可能要维持一个本地编译它前进。