Сбой сборки TeamCity, потому что NUnit блокирует файлы?
У нас возникла проблема с непрерывной интеграцией нашего проекта. Иногда мы хотим попытаться очистить все файлы при сборке в TeamCity в его каталоге извлечения. Всякий раз, когда мы пытаемся сделать это, nunit-agent.exe
в конечном итоге остается открытым из предыдущей сборки, что приводит к следующим ошибкам:
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\UnitTestResults.xml
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\src\packages\NUnit.2.5.7.10213\Tools\lib\nunit-console-runner.dll
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\src\packages\NUnit.2.5.7.10213\Tools\lib\nunit.core.dll
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\src\packages\NUnit.2.5.7.10213\Tools\lib\nunit.core.interfaces.dll
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\src\packages\NUnit.2.5.7.10213\Tools\lib\nunit.util.dll
[05:35:40]: [Updating sources: Agent side checkout...] Failed to delete file: C:\TeamCity\buildAgent\work\path\to\src\packages\NUnit.2.5.7.10213\Tools\nunit-agent.exe
Мы всегда должны попросить кого-то, у кого есть доступ к коробке, вручную завершить процесс, прежде чем сборка снова заработает. По каким причинам NUnit должен оставаться открытым в течение неопределенного времени (мы можем подождать 24 часа, и он все еще будет зависать)? Есть ли какая-то команда, которую нам нужно использовать в нашем скрипте сборки, чтобы заставить его завершиться, или чтобы сообщить TeamCity, что если программа зависает, чтобы принудительно закрыть ее?
4 ответа
У меня тоже была эта проблема. Я обновился до 2.6.012035, и теперь он работает для меня.
Вы устали от установки "сбой сборки, если она работает дольше, чем х"?
См. http://confluence.jetbrains.net/display/TCD5/1.General+Settings
Установите этот флажок и введите значение в минутах, чтобы включить контроль времени при сборке. Если указанное количество времени превышено, сборка автоматически отменяется. Эта опция помогает работать со сборками, которые зависают и поддерживают эффективность агента.
Никаких потрясающих идей с моей стороны, только очевидное:
- Обновление до последней версии обычно помогает.
- Является ли сбой "Full Build (dev branch)" единственной конфигурацией, использующей "проверку на стороне агента"? Остальные, на которые я смотрел, используют "проверку на стороне сервера". Я не эксперт по разнице, но ты уверен, что это нужно?