Не удается получить набор модификаций для работы в CruiseControl в Linux - PullRequest
0 голосов
/ 28 января 2010

Я пытаюсь настроить круиз-контроль в среде 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>

Ответы [ 2 ]

2 голосов
/ 28 января 2010

Хм ... Я не совсем следую вашим настройкам. Предполагается, что отправленный вами XML-файл является файлом сборки ANT или XML-файлом конфигурации CruiseControl?

Потому что эти два разные. <target>s обычно отображается в файле ANT , тогда как <modificationset> является типичным для конфигурации CruiseControl . Случайно они оба используют <project> элемент.

Поэтому я бы предложил переместить файл конфигурации <modificationset> в CC. Также есть возможность сообщить CC о сборке только при обнаружении каких-либо изменений (не так ли это по умолчанию?).

РЕДАКТИРОВАТЬ: И кстати, проблема, похоже, не имеет ничего общего с Unix как таковой. Я склонен полагать, что вы столкнетесь с такими же проблемами в Windows.

0 голосов
/ 28 января 2010

Для непрерывного построения я использую 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

Надеюсь, это поможет ...

...