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

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

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

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

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

Тело: "# {error traces}"

Полагаю, это предполагает ответ на этот вопрос: должен ли я даже добавлять разрывы CI в отслеживание ошибок?

Ответы [ 3 ]

4 голосов
/ 16 августа 2008

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

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

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

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

Специально для вашей второй проблемы:

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

3 голосов
/ 16 августа 2008

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

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

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

0 голосов
/ 16 августа 2008

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

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

...