Cruisecontrol.net пропущенные проверки - PullRequest
0 голосов
/ 30 апреля 2009

Я установил 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 ]

1 голос
/ 30 апреля 2009

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

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

0 голосов
/ 08 июня 2009

Время на сервере Subversion было около 2 часов от времени на сервере Cruisecontrol. Я исправил это, и проверки теперь, кажется, работают намного более гладко.

0 голосов
/ 05 июня 2009

Убедитесь, что 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/) path.

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

0 голосов
/ 03 мая 2009

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

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