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

StackOverflow https://stackoverflow.com/questions/13200

Вопрос

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

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

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

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

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

Я полагаю, это предполагает ответ на этот вопрос:должен ли я вообще включать CI-брейки в свой багтрекинг?

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

Ваш информатор не обязан ничего вносить в ваш багтрекер.Бамбук ничего не вкладывает в ДЖИРУ.Вместо этого сотрудники Atlassian предоставили плагин для JIRA, который будет выполнять удаленный вызов api в Bamboo, задавая вопрос "Bamboo, к каким сборкам я (проблема с JIRA) отношусь?".Вероятно, это лучше всего объяснить с помощью скриншот.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top