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