Лучший способ автоматизации ежедневной сборки
Итак, мы все знаем, что ежедневная сборка - это сердце проекта, но какой самый лучший способ его автоматизации?
У нас есть Perl-сценарии, которые обертывают наш конвейер, который включает в себя ClearCase, VS2005 (C++), Intel FORTRAN, установку Inno. Мы используем задания cron в UNIX для планирования сборки и размещаем простой веб-сервер Apache для просмотра и мониторинга сборки. В целом, это довольно сложно, я хотел бы знать, какое лучшее готовое решение, которое используют люди?
И да, я сказал ФОРТРАНу, что иногда его не избежать, это работает, нет смысла делать огромный проект повторной реализации для некоторого испытанного и проверенного кода FEA, который просто работает.
9 ответов
Мы находимся в процессе внедрения CC.Net. До сих пор кажется, что это будет соответствовать вашей модели довольно хорошо.
Из коробки предлагается автоматическое построение, отслеживание результатов и уведомление. Я не уверен, насколько детализирован мониторинг выполнения.
Для меня новинка, которую я слышал, довольно гладкая - это Hudson - также с поддержкой MSBuild.
Есть много инструментов, которые специально справляются с этим:
Инструменты имеют встроенную поддержку для наиболее распространенных типов сборки. Все они также поддерживают своего рода процесс сборки типа "запустить этот скрипт".
В конце вы должны использовать более приятные инструменты сборки (MSBuild, Ant, Maven, Make, ...), где вы можете, и заполнить пробелы в инструментах шансов с помощью пользовательских сценариев. Автоматическая сборка может просто вызывать их в правильном порядке.
Мы используем TeamCity - но тогда это простая разработка на C#/Java - может быть, ваш конвейер можно сделать с помощью сценариев, которые он может использовать?
Вот лучший ресурс, который мы нашли, чтобы помочь нам выбрать инструмент непрерывной интеграции. На этой странице мы оценивали 5 или 6 инструментов.
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
Если вы работаете с Visual Studio, обязательно посмотрите Team Foundation Build, чтобы убедиться, что он подойдет для вашей ситуации.
Похоже, что блог Бака Ходжеса о версии VS 2008 также является хорошим ресурсом.
CC.NET очень мощный. Воспользовался этим и был действительно рад этому. Даже значок статуса в systray. Это небольшая деталь, но она дает вам хороший обзор "здоровья" проекта. Вы сразу почувствуете мотивацию исправить тесты, когда увидите красный цвет.
Теперь мы используем серию сценариев, выпеченных самостоятельно. Поскольку мы пишем Python, компиляция не существует, поэтому единственной проблемой является запуск тестов.
Я знаю, что это действительно старый вопрос, но он все еще встречается в поисках, поэтому кто-то должен упомянуть Дженкинса - продолжение Гудзона с открытым исходным кодом.
Из вики Дженкинса:
Среди этих вещей, текущий Дженкинс сосредоточен на следующих двух работах:
- Непрерывное создание / тестирование программных проектов, как в CruiseControl или DamageControl. Короче говоря, Jenkins предоставляет простую в использовании так называемую систему непрерывной интеграции, облегчающую разработчикам интеграцию изменений в проект, и облегчающую пользователям получение новой сборки. Автоматическая непрерывная сборка повышает производительность.
- Наблюдение за выполнением выполняемых извне заданий, таких как задания cron и заданий procmail, даже тех, которые выполняются на удаленной машине. Например, с помощью cron все, что вы получаете, это обычные электронные письма, в которых записывается вывод, и вы должны внимательно посмотреть на них и заметить, когда они прервались. Дженкинс сохраняет эти результаты и позволяет вам легко заметить, когда что-то не так.
Первоначально он был создан с учетом Java, поэтому он хорошо интегрируется со многими другими инструментами Java, но вы можете использовать его с любым языком, включая все, упомянутые в OP.