2010-01-27 9 views
0

Linux 환경에서 cruisecontrol을 설정하려고합니다. 나는 cc.NET에 약간의 경험을 가지고 있지만, 처음으로 'nix 버전'을 사용하려고 시도한 것은 이번이 처음입니다. 이것은 내 build.xml에 대해 가지고있는 것입니다 :Linux의 CruiseControl에서 수정 세트를 사용할 수 없음

"ant project1"을 실행하면 모든 것이 나에게 알리는 것 외에는 작동하는 것 같습니다 : /opt/cruisecontrol-bin-2.8.3/projects/portal/build .xml : 8 : 문제점 : 작업 생성 또는 유형 수정 세트를 생성하지 못했습니다. 원인 : 이름이 정의되지 않았습니다.

다른 방법으로 "변경 사항이 svn에 체크인되었을 때만 빌드"할 수 없습니다. 나는 CC 2.8.3을 사용하고있다. 어떤 아이디어?

#!/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 

난이 도움이되기를 바랍니다 ...

답변

2

흠 ... 나는 확실히 당신의 설정을 따르지 않는 : 연속 건물에 대한

<?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> 
+0

알 수 있습니다. 나는 우리가 다루고있는 두 개의 파일이 있다는 것을 깨닫지 못했습니다! – RepDetec

0

나는 cronjob에이 스크립트를 사용합니다. 게시 한 XML 파일은 ANT 빌드 파일 또는 CruiseControl XML 구성 파일로되어 있습니까?

이 두 가지가 다르기 때문입니다. <target>s은 일반적으로 the ANT file에 나타나고 <modificationset>CruiseControl configuration의 일반적인 것입니다. 우연히 그들은 둘 다 <project> 요소를 사용합니다.

그래서 나는 <modificationset>을 CC 설정 파일로 옮기는 것이 좋습니다. 변경 사항이 발견 될 때만 빌드하도록 CC에 지시하는 옵션도 있습니다 (기본 설정이 아닌가?).

편집 : 그리고 BTW,이 문제는 유닉스 그 자체와 공통점이없는 것처럼 보입니다. 나는 당신이 Windows에서 같은 문제를 겪을 것이라고 생각하는 경향이 있습니다.

관련 문제