2010-11-24 77 views
1

J'ai cette section dans mon dossier CruiseControl config.xml:Comment utilisez-vous les étiquettes de construction dans les éditeurs de cruisecontrol?

<publishers> 
    <onsuccess> 
     <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/fred"/> 
     <execute command="hg -R hg-succeeded/${project.name} pull"/> 
     <execute command="hg -R hg-succeeded/${project.name} tag -l build-${label} -r tip"/> 
    </onsuccess> 
</publishers> 

Je reçois des balises qui ressemblent à build-${label}. La partie ${label} n'est pas remplacée par l'étiquette de construction comme je l'espère. Je m'attends à quelque chose comme build.1 pour apparaître à la place de ${label}. Comment puis-je y arriver?

J'ai le labelincrementer par défaut configuré avec une balise <labelincrementer /> dans mon projet.

De plus, la documentation de CruiseControl est absolument horrible. Y a-t-il une meilleure documentation partout?

+0

Je mets une prime là-dessus puisque je n'ai pas vraiment eu de bonne réponse. – Omnifarious

Répondre

0

Eh bien, personne n'a répondu à cette question, alors je vais mettre cette réponse ici pour que je puisse la sélectionner demain et perdre la prime. soupir

Ma réponse est d'utiliser Hudson, car il ressemble à CruiseControl a vraiment tombé faire tout développement utile et a passé à travailler en grande partie sur la version .NET que j'ai aucun intérêt à. Mais si quelqu'un sait comment pour le faire dans CruiseControl je suis toujours tout ouïe.

1

Si vous souhaitez remplacer ${label} avec quelque chose comme un numéro de révision SVN, vous pouvez créer un plugin d'incrémentation d'étiquette - voir http://www.java2s.com/Open-Source/Java-Document/Build/cruisecontrol/net/sourceforge/cruisecontrol/labelincrementers/SVNLabelIncrementer.java.htm pour un exemple.

Ceci est construit dans un pot et placé dans le répertoire CruiseControl \ lib.

Dans votre configuration CC, vous devriez définir ce plugin en déclarant:

<project ...> 
    <plugin name="labelincrementer" class="my.subclass.of.LabelIncrementer" /> 
    <labelincrementer /> 
    ... 
</project> 

Vous pouvez ajouter tous les attributs que vous aimez dans votre balise <labelincrementer ... />; ils seront injectés dans une instance de votre sous-classe par les méthodes setXXX.

+0

Eh bien, c'est presque ce que je veux. Ce que je veux vraiment, c'est une étiquette qui contienne le numéro de build de CruiseControl, que je crois qu'il contient déjà. * soupir * Je connais Java, mais je le méprise. Et CruiseControl semble très centré SVN aussi. C'est vraiment énervant. Mais c'est le seul outil qui fait ce que je veux. :-(On dirait que je vais peut-être devoir plonger dans le code de l'incrémenteur d'étiquettes par défaut et déterminer quelle balise il définit – Omnifarious

+0

Il y a toujours le DefaultLabelIncrementer http://www.java2s.com/Open-Source /Java-Document/Build/cruisecontrol/net/sourceforge/cruisecontrol/labelincrementers/DefaultLabelIncrementer.java.htm –

+0

@Matt Gumbley - C'est vrai, et c'est ce que j'utilise, mais quel attribut est-ce que ça a? – Omnifarious