2010-01-27 20 views
0

J'essaie de configurer cruisecontrol dans un environnement Linux. J'ai un peu d'expérience avec cc.NET, mais c'est la première fois que j'essaie d'utiliser la version 'nix'. C'est ce que j'ai pour mon build.xml:Impossible d'obtenir l'ensemble de modifications pour fonctionner dans CruiseControl sous Linux

Quand je lance "ant project1", tout semble fonctionner sauf qu'il me dit: /opt/cruisecontrol-bin-2.8.3/projects/portal/build .xml: 8: Problème: impossible de créer une tâche ou un jeu de modifications de type Cause: Le nom est indéfini.

Je n'arrive pas à trouver une autre façon de dire "ne construit que quand une modification est vérifiée dans svn". J'utilise CC 2.8.3. Des idées?

<?xml version="1.0" encoding="UTF-8"?> 
<project name="project1" basedir="."> 
<target name="checkout"> 
    <exec executable="svn" dir="${basedir}/source"> 
     <arg line="up" /> 
    </exec> 
</target> 
<modificationset> 
    <svn localWorkingCopy="projects/${project.name}/source/"/> 
</modificationset> 
<target name="php-codesniffer"> 
    <exec executable="phpcs" 
      dir="${basedir}/source" 
      output="${basedir}/build/logs/checkstyle.xml"> 
      <arg line="--report=checkstyle 
       --standard=PEAR 
       --ignore=src/autoload src/"/> 
    </exec> 
</target> 
<target name="publish"> 
</target> 
<target name="build" depends="checkout,php-codesniffer" /> 
</project> 

Répondre

2

Hmm ... Je ne suis pas tout à fait votre configuration. Le fichier XML que vous avez posté est censé être un fichier de construction ANT ou un fichier de configuration CruiseControl XML?

Parce que ces deux sont différents. <target>s apparaissent généralement dans the ANT file, tandis que <modificationset> est quelque chose de typique pour CruiseControl configuration. Par accident, ils utilisent tous les deux <project> élément.

Je vous suggère donc de déplacer le <modificationset> vers le fichier de configuration CC. Il y a aussi une option pour dire à CC de ne construire que lorsque des modifications sont trouvées (n'est-ce pas le réglage par défaut?).

EDIT: Et BTW, le problème ne semble pas avoir quelque chose en commun avec Unix en soi. J'ai tendance à croire que vous rencontreriez les mêmes problèmes sur Windows.

+0

Vous l'avez. Je n'avais pas réalisé qu'il y avait deux fichiers avec lesquels nous avions affaire! – RepDetec

0

Pour la construction continue-je utiliser cronjob et ce script:

#!/bin/bash 
cd myLocalWorkingCopy 
if [[ \"`/usr/bin/svn info -r HEAD`\" = \"`/usr/bin/svn info -r BASE`\" ]]; then 
    echo "local working copy up to date" 
else 
    /usr/bin/nant -buildfile:myBuildfile.build -logfile:myLogfile.log 
fi 

J'espère que cette aide ...