Как мне интегрировать мою систему непрерывной интеграции с моей системой отслеживания ошибок?

Asked
Viewd2092

6

Я использую cruisecontrol.rb для CI и FogBugz для отслеживания ошибок, но чем более общие ответы, тем лучше.

Во-первых, техническая проблема: есть ли API для FogBugz? Есть ли хорошие учебные пособия или еще лучше заранее написанный код?

Во-вторых, проблема процедурного характера: что именно CI должен помещать в систему отслеживания ошибок, когда сборка прерывается? Возможно:

Заголовок: "# {последний коммиттер} сломал сборку!"

Тело: "# {следов ошибки}"

Полагаю, это предполагает ответ на вопрос: следует ли мне вообще включать CI-перерывы в отслеживание ошибок?

3 ответов

3

Все настройки CI, с которыми я работал, отправляют электронное письмо (в список), но если вы действительно хотите - особенно если ваша команда использует FogBugz как систему задач - вы можете просто открыть кейс в FogBugz 6. У него есть API , который позволяет открывать дела. В этом отношении вы можете просто настроить его для отправки электронного письма на ваш адрес электронной почты FogBugz, но API может позволить вам сделать больше, например, назначить дело последнему коммиттеру.

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

И спасибо: это заставляет меня задуматься, стоит ли мне попробовать интегрировать наши Chimps настройка с помощью нашего FogBugz!

0

CC поставляется с утилитой, которая предупреждает вас о сбое сборки; вероятно, не стоит регистрировать сбой сборки в FogBugz - вам не нужно отслеживать проблемы, которые решаются немедленно (как и большинство сломанных сборок)

Чтобы пойти другим путем (FogBugz показывает отметки, устраняющие проблему), вам понадобится веб-браузер репозитория - FogBugz легко настроить, чтобы он отображал правильные изменения.

4

В моей компании мы недавно внедрили (коммерческий) стек Atlassian, включая JIRA для отслеживания проблем и Bamboo для сборок. Как и в мире Microsoft (я предполагаю - мы магазин Java), если вы получаете все свои продукты от одного поставщика, вы получаете бонус в виде тесной интеграции.

Чтобы увидеть, как они реализовали совместимость, просмотрите их страница взаимодействия .

Хватит шиллинга. В общем, я могу резюмировать их общий подход следующим образом:

  • Создавайте проблемы в вашем трекере ошибок (например, ключ проблемы PROJ-123).
  • При фиксации кода добавьте «PROJ-123» в комментарий фиксации, чтобы указать, какую ошибку исправляет это изменение кода.
  • Когда ваш CI-сервер проверяет код, просканируйте комментарии фиксации изменений. Запишите все строки, соответствующие регулярному выражению ключей задачи.
  • По завершении сборки сгенерируйте отчет о том, какие ключи ошибок были найдены.

Конкретно к вашей второй проблеме:

Ваш CI не должен ничего помещать в ваш трекер ошибок. Bamboo ничего не вкладывает в JIRA. Вместо этого люди из Atlassian предоставили плагин для JIRA, который будет выполнять удаленный вызов api в Bamboo, задавая вопрос «Bamboo, к каким сборкам я (проблема JIRA) относится?». Вероятно, лучше всего это объяснить с помощью снимка экрана снимок экрана .