Инструменты непрерывной интеграции с поддержкой конвейера? - PullRequest
2 голосов
/ 22 октября 2008

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

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

  2. Зависимость задачи: в случае сбоя сборки тесты запускать не следует, но могут выполняться другие задачи (например, lint или что-то в этом роде).

  3. Поддержка нескольких инструментов сборки и тестирования (включая пользовательские).

  4. Поддержка нескольких платформ (Linux, Mac, возможно, Windows).

  5. Некоторые возможности архивирования были бы великолепны, например, файлы журналов, выходные данные сборки / тестирования и т. Д. Естественно, это может стать неуправляемо большим, поэтому в идеале некоторые данные будут очищаться через X дней или Y сборок. *

Любые указатели или личные советы приветствуются.

Ответы [ 8 ]

3 голосов
/ 22 октября 2008

Возможно, вы захотите взглянуть на Дженкинс (ранее Хадсон) .

2 голосов
/ 22 октября 2008

Automated Build Studio подходит близко, я думаю, хотя это, вероятно, не вариант для вас из-за своей природы только для окон.

  1. Да. Веб-интерфейс предоставляет дополнительную информацию по мере выполнения сборок, как в деталях, так и в процентах.
  2. Да. Процесс сборки представляет собой иерархию задач. Вы можете определить, является ли задача неудачной, продолженной или неудачной.
  3. Да. Задачи могут быть чем угодно. Инструментарий задач, которые его сопровождают, довольно завершен.
  4. Нет. Сервер сборки должен быть Windows-машиной. Однако вы можете начать сборку из веб-интерфейса.
  5. Да. Каждая сборка регистрируется в деталях, иерархически, поэтому легко определить, что происходило на каждом этапе.
2 голосов
/ 22 октября 2008

Я использовал Муравейник , но вы должны заплатить за него.

1 голос
/ 17 января 2011

Придется согласиться с опцией продуманных работ - перейти к «Agile Release Management» http://www.thoughtworks -studios.com / гоу-проворный-релиз-менеджмент

В корпоративной версии есть бесплатная версия сообщества и некоторые полезные функции, такие как конфигурации среды и развертывание конкретного артефакта (версии) в определенных средах.

1 голос
/ 22 октября 2008

Я думаю buildbot сделает все, что вы хотите:

  1. Веб-интерфейс отображает вывод команд.
  2. Полные зависимости задачи
  3. Полностью настраиваемые инструменты - скрипты Python, но в основном скрипты оболочки
  4. В настоящее время мы используем его на Linux, Mac, Solaris, HP-UX
  5. Он записывает все, я не знаю, как / если он очищает вещи.
0 голосов
/ 29 января 2009

Пожалуйста, попробуйте Круиз от Thoughtworks

0 голосов
/ 12 ноября 2008

Мы используем Hericus Software Zed Builds и Bugs Management , и он может обрабатывать то, что вы описываете. Наши основные сборки состоят из более чем 61 дискретного этапа, охватывающего компиляцию для Java, C ++, C # и сборочные сборки для 5 различных платформ ОС. Некоторые шаги выполняются параллельно, некоторые могут завершиться сбоем без сбоя всей сборки, а многие шаги выполняются удаленно на разных машинах.

1) Да. Поскольку шаги выполняются для сборки, вы можете сразу увидеть результаты шага, не дожидаясь завершения всей сборки.

2) Да. Вы можете определить, является ли сбой шага причиной полного сбоя сборки или нет. Возможность создавать «дочерние» или «вспомогательные» сборки, вызываемые «родительской» или «основной» сборкой, обеспечивает исключительную гибкость.

3) Да. Мы используем make-файлы, ant, решения C # и несколько пользовательских скриптов, и все они хорошо интегрируются.

4) Да. Сервер сборки - java, и для него требуется только JDK версии 1.6, поэтому любые платформы работают либо с основным сервером сборки, либо со спутниковыми серверами сборки.

5) Да. Все, что скопировано в директорию сборки "status", сохраняется. Это включает в себя стандартный вывод команды / ошибка, которую можно просмотреть на веб-сайте. Вы выбираете, сколько историй сборки «dev» хранить в терминах количества сборок. Сборка также может быть повышена до «QA», в этом случае она не будет удалена, пока не будет удалена из «QA». Из QA вы можете повысить качество сборки до «Производство», в котором будут храниться все артефакты сборки, пока вы не решите их удалить.

0 голосов
/ 24 октября 2008

Мои настройки JetBrains TeamCity приблизительно соответствуют вашим потребностям.

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

Разница между каждой конфигурацией сборки заключается в выборе целей сборки (я использую NAnt) и в запуске.

У меня есть конфигурация "Интеграция XYZ", которая выполняет отладочную сборку и запускает некоторые тесты NUnit. Это срабатывает через 60 секунд после завершения регистрации, что дает быструю обратную связь с командой разработчиков.

У меня также есть конфигурация «XYZ Daily», которая выполняет отладочную сборку, запускает тесты NUnit, затем собирает некоторые MSI и компилирует некоторую документацию. Как вы можете догадаться, это происходит один раз в день.

Вы можете сделать то же самое, но с более широким диапазоном конфигураций.

...