2015-01-13 2 views
0

У нас есть TeamCity с несколькими агентами и некоторыми агентами, запущенными на компьютере сотрудника/программистов. Если вечером компьютер выключен, работающая сборка помечается как неудачная и отправляется уведомление по электронной почте. Возможно ли это в случае выключения, пометить сборку как отмененную и выбрать другого агента и запустить сборку снова для другого агента?Сбой сборки после закрытия агента TeamCity

+0

Простое решение - не запускайте TeamCity, основываясь на ноутбуках для людей. изменение истории сборки не является хорошей идеей .. нет необходимости искать обходные пути для плохих практик – Nimrod007

+0

Мы запускаем не только сборку, но и проверку качества, которая работает в течение нескольких часов. У нас недостаточно достаточно незанятых серверов для использования, но у нас есть много пользовательских станций. – qub1n

+0

В книге «Как мы тестируем в Microsoft» вы можете прочитать, что даже Microsoft запускает тест на пользовательских станциях. Но я не сужу, если они отключат его. – qub1n

ответ

1

Я думаю, что если компьютер выключен, а сборка TeamCity запущена, она [build] будет отмечена как неудачная в любом случае. Поэтому вопрос заключается в том, как перезапустить сборку после сбоя на новой машине.

Вы можете создать пулы агентов и назначить нескольким агентам сборки пул. После этого вы должны отредактировать параметр «Требования к агентам» в конфигурации сборки, чтобы ваша сборка могла быть запущена на любой живой машине.

Вы можете использовать «Триггер сборки повтора» в разделах триггеров для повторного запуска сборки после сбоя. Он перезапустит все неудачные сборки, но это нормально для вашей проблемы.

+0

В моей точке зрения плохо, если он строит отметку как неудачную. Потому что он будет виден в истории как неудачный. Если это не будет каким-то образом автоматически удалено и снова добавить очередь сборки. – qub1n

+0

Мы используем пулы сборки, но это не решает проблему с установкой маркировки как false. Триггер запуска Retry - хорошая идея, которая решает вернуть сборку в очередь. Затем нужно решить, удалить прерванную сборку из результатов. – qub1n

+0

Вы можете использовать API TC REST для отображения неудачных сборок и удаления сборок: https://confluence.jetbrains.com/display/TCD8/REST+API#RESTAPI-BuildRequests, чтобы вы могли легко автоматизировать его. –

1

Сборка повторного запуска (https://confluence.jetbrains.com/display/TCD8/Configuring+Build+Triggers) + TC REST API (https://confluence.jetbrains.com/display/TCD8/REST+API#RESTAPI-BuildRequests) для удаления неудачных сборок.

+0

Вы правы, я попытался запустить сборку, выключить компьютер, и сборка была отмечена как отмененная. Это то, что делают остальные API. Похоже, что если триггер повтора указывает, что уведомление по электронной почте не отправляется после первого отказа, это именно то, что мне нужно, и, наконец, мне не нужно удалять отмененную сборку. Для получения дополнительной информации см. Комментарий booshha bellow. – qub1n

+0

Я не знал, что с триггером повтора, когда сборка завершается неудачей, она не отправляет электронное письмо. Это интересно, я проверю это :) –

Смежные вопросы