J'ai un problème avec la configuration de CC.Net. Ma configuration actuelle pour le projet ressemble à ceci (aseptisé pour se débarrasser de choses confidentielles):CruiseControl.Net continue à construire même s'il n'y a pas de nouvelle source
<project name="WebApp">
<workingDirectory>c:\cc\WebApp\Code</workingDirectory>
<artifactDirectory>c:\cc\WebApp\Artifacts</artifactDirectory>
<webURL>http://example.com/ccnet</webURL>
<modificationDelaySeconds>10</modificationDelaySeconds>
<triggers>
<intervalTrigger seconds="30" name="continuous" />
</triggers>
<sourcecontrol type="multi">
<sourceControls autogetsource="true">
<svn>
<trunkUrl>svn+ssh://[email protected]/webapp/trunk</trunkUrl>
<executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
<username>build</username>
<password>********</password>
<revisionNumbers>true</revisionNumbers>
</svn>
<svn>
<trunkUrl>svn+ssh://[email protected]/dataservice/trunk</trunkUrl>
<executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
<username>build</username>
<password>********</password>
<revisionNumbers>true</revisionNumbers>
<workingDirectory>..\dataservice</workingDirectory>
</svn>
<svn>
<trunkUrl>svn+ssh://[email protected]/WCFProxyClasses/WCFProxyClasses/trunk</trunkUrl>
<executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
<username>build</username>
<password>********</password>
<revisionNumbers>true</revisionNumbers>
<workingDirectory>..\proxies\WCFProxyClasses</workingDirectory>
</svn>
</sourceControls>
</sourcecontrol>
<tasks>
<msbuild>
<executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
<projectFile>WebApp/WebApp.msbuild</projectFile>
<targets>BeforeBuild;Build;AfterBuild</targets>
<timeout>300</timeout>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
</tasks>
<publishers>
<rss/>
<xmllogger />
<statistics />
<!-- Email build report to development and QA team -->
<email from="[email protected]" mailhost="mailhost" mailport="25" includeDetails="TRUE" mailhostUsername="" mailhostPassword="" useSSL="FALSE">
<users>
<user name="Developer" group="devs" address="[email protected]"/>
</users>
<groups>
<group name="devs"/>
</groups>
<converters/>
<modifierNotificationTypes>
<NotificationType>Always</NotificationType>
</modifierNotificationTypes>
</email>
<modificationHistory onlyLogWhenChangesFound="true" />
</publishers>
</project>
Nous avons plusieurs cibles de contrôle de source parce que le projet d'application Web dépend des autres. Je ne suis pas sûr que ce soit la cause du problème (auquel je suis arrivé) ou non. J'ai peu d'expérience (aucune!) Avec CC.Net alors je ne sais pas vraiment où chercher. Nous avons d'autres projets dans le fichier de configuration, mais aucun d'entre eux n'a plusieurs cibles de contrôle de source et ils se comportent tous comme prévu.
Le problème avec ce projet est que, indépendamment des changements de contrôle de la source, il tente simplement de construire toutes les 30 secondes! Pour autant que je sache, l'étiquette <revisionNumbers>
est censée faire attendre CC.Net pour une nouvelle révision de la source avant de la reconstruire, mais elle continue de construire et d'envoyer des emails, toutes les 30 secondes.
Si vous avez besoin de plus d'informations je le ferai. J'espère que quelqu'un reconnaît ce qui ne va pas ici ou a déjà connu le problème et pourrait avoir des suggestions pour moi.
Merci!
EDIT -
Si elle aide, le projet défini ci-dessus échoue pour construire chaque fois. Cela est dû au fait que certaines DLL tierces référencées dans le projet ne sont pas disponibles sur le serveur CC.Net. Est-ce que la construction ratée pourrait la faire «réessayer» toutes les 30 secondes?
Je ne vois pas 'autogetsource = "true"' 'sur' dans la documentation, êtes-vous sûr qu'il est correct?Le paramètre < 'devrait par défaut s'appuyer uniquement sur' IfModificationExists buildCondition> ', de sorte que vos contrôles sources doivent signaler les modifications à chaque vérification. Pourquoi utilisez-vous plusieurs blocs de contrôle de source ici au lieu de svn externals? –
skolima