0

我正在尝试在 Linux 环境中设置巡航控制。我对 cc.NET 有一些经验,但这是我第一次尝试使用 'nix 版本。这就是我的 build.xml 所拥有的:

当我运行“ant project1”时,一切似乎都正常,除了它告诉我:/opt/cruisecontrol-bin-2.8.3/projects/portal/build.xml:8:问题:创建任务或类型修改集失败原因:名称未定义。

我似乎找不到另一种方式来说“仅在将更改签入 svn 时才构建”。我正在使用 CC 2.8.3。有任何想法吗?

<?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>
4

2 回答 2

2

嗯...我不太遵循您的设置。您发布的 XML 文件应该是 ANT 构建文件或 CruiseControl XML 配置文件?

因为这两个是不同的。 <target>s通常显示在ANT 文件中,而<modificationset>对于CruiseControl 配置来说是典型的。偶然他们都使用了<project>元素。

因此,我建议您将其<modificationset>移至 CC 配置文件。还有一个选项可以告诉 CC 仅在找到任何修改时才构建(这不是默认设置吗?)。

编辑:顺便说一句,这个问题似乎与 Unix 本身没有任何共同之处。我倾向于相信你会在 Windows 上遇到同样的问题。

于 2010-01-27T23:14:42.827 回答
0

对于持续构建,我使用 cronjob 和这个脚本:

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

我希望这有帮助...

于 2010-01-27T21:48:17.140 回答