Вопрос

Я настроил CCNET, и в целом все работает нормально.Он опрашивает сервер SVN и проверяет код, если видит какие-либо изменения.За исключением случаев, когда во время сборки происходит проверка.В настоящее время сборка и тестовый запуск занимают около 3–4 минут, если кто-либо проверяет код во время сборки, система управления Crusie не распознает возврат и ждет, пока не произойдет возврат после запуска сборки.

Почему это может быть?

Это svn-часть файла ccnet.config:

<sourcecontrol type="svn">
    <executable>svn.exe</executable>
    <trunkUrl>http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/</trunkUrl>
    <workingDirectory>C:\CrusieControlProjects\AcademyPro\</workingDirectory>
    <username>******</username>
    <password>******</password>
    <autoGetSource>true</autoGetSource>
</sourcecontrol>

Отредактировано для ясностиПроблема не связана с атомарными проверками.Проверка может быть завершена, CCNET собирает приложение и начинает выполнять тесты.В этот момент кто-то еще делает еще одну проверку.Я ожидаю, что после завершения тестового запуска CCNET обнаружит регистрацию, выполненную во время тестового запуска.

Этого не происходит, пропущена регистрация и пропущена сборка, которую я ожидаю.

Это ожидаемое поведение, или я не понимаю, что говорил @Джефф Мэттфилд?

Это было полезно?

Решение 4

Время на сервере Subversion отличалось примерно на 2 часа от времени на сервере круиз-контроля.Я это исправил, и теперь проверки проходят намного плавнее.

Другие советы

Коммит Subversion является атомарным.Он не доступен для оформления заказа, пока он не будет завершен без ошибок.Обновление или извлечение из репозитория во время параллельной фиксации приводит к состоянию репозитория до этой фиксации.

Другими словами, CC.NET получает то, что содержалось в репозитории после последней успешной фиксации.

У меня никогда не было такой проблемы, и я работаю с SVN+CCNet уже пару лет.

  1. Можете ли вы опубликовать всю конфигурацию проекта CCNet?Это может быть связано, например, с триггерами.
  2. Какую версию CCNet вы используете?
  3. Вы говорите, что CCNet обнаруживает только те изменения, которые произошли после сборка.Хорошо, но когда вы посмотрите на отчет о сборке проекта ("Изменения с момента последней сборки"), показывает ли он только те, которые произошли после предыдущей сборки, или все из них (включая те, которые произошли в течение предыдущая сборка)?

Убедитесь, что для ccservice.exe.config / ccnet.exe.config установлен уровень журнала отладки:

<configuration>
  <configSections>
  ...
    </log4net>
      <root>
        <level value="DEBUG"/>
      <root>
    </log4net>
  ...
  </configuration>
</configSections>

Затем проверьте выходные данные Subversion в ccnet.log на предмет версии Subversion.

2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] <logentry
2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe]    revision="1057">

Убедитесь, что эта редакция является последней ревизией с коммитами по пути svn TrunkUrl (http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/).

В противном случае проверьте журнал и файл состояния для получения дополнительных подсказок.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top