Как добиться ночной сборки с CruiseControl.NET - PullRequest
5 голосов
/ 07 января 2009

Я настроил cruisecontrol.net cs для своего проекта, в котором есть несколько модулей и компонентов, которые собираются и хранятся в папке по дате на сборочном компьютере. Дело в том, что мне нужно выполнить настройку приложения ( wpf non web), и дело в том, что существует целый ряд модулей и различных решений, которые создают и, наконец, делают продукт (dll) и т. д. Пакет для использования (что-то более простое или, по вашему мнению, это займет меньше времени) Я планировал установить на сборочный компьютер что-то, что будет брать файлы из папки (какая папка?) и выполнять настройку ...

Ссылка для иллюстрации этого вопроса Ночная сборка Firefox .

Любые советы, ребята

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 30 июля 2009

Я обнаружил, что эта система работает очень хорошо для меня. Я предполагаю, что VS 2005/2008 и C #, но тот же принцип работает для других компиляторов, и языки просто заменяют ваш собственный ароматизатор.

Использование CC.NET

  • Проверьте все источники с scheduleTrigger, если несколько местоположений используют
  • Используйте MSBuild для построения каждого требуемого решения (при условии VS 2005/2008), или nant, или любого другого инструмента сборки, который лучше всего подходит для компиляции проектов компонентов
  • Используйте MSBuild для создания установщиков WIX, хотя я также использовал MSBuild для создания установок InnoSetup и Wise Installation Studio
  • Используйте MSBuild, чтобы обновить файлы AssemblyInfo.cs для любых проектов, которыми скрипт управления должен управлять
  • Используйте командную строку управления исходным кодом для регистрации обновленных файлов AssemblyInfo.ca
  • Наконец, используйте MSBuild, чтобы скопировать ваш установщик вывода в новую папку на вашем сервере. Я использую метку времени из исполняемого файла основного продукта, чтобы создать временную метку вместе с сгенерированным номером версии для имени папки (../Builds/Product/v.M.m.r.p - DATE TIME /)

Мне также нравится генерировать электронное письмо с уведомлением о сборке в конце.

Что касается рекомендаций установщика , то здесь есть компромисс.

Для быстрой генерации используйте установщик скриптов, такой как NSIS или Inno Setup. Недостаток - несовместимость с установщиком Windows.

Для продуктов установщика Windows использование Wise или InstallShield выполняется быстрее, но я считаю, что дорогие инструменты и обслуживание моих сценариев установки требуют больших затрат. Использование WIX в первый раз, как правило, обходится гораздо дороже (кривая обучения + налог на угловую скобку), но затем его легче поддерживать, поскольку все это XML и инструменты командной строки просты в использовании.

У меня был некоторый успех с комплектацией установки с помощью Inno Setup, так как связывание и создание цепочек установщика Windows (по крайней мере, для Windows XP) - настоящая проблема.

1 голос
/ 07 января 2009

Мы использовали Visual Build и Wise для создания нашего инсталлятора и обнаружили, что он очень интуитивно понятен и прост в создании настроек. Фактический проект CC.NET делает несколько вещей, во-первых, он проверяет, чтобы все необходимые детали были успешно собраны с тех пор, как мы в последний раз создавали установщик (мы разрешаем установку по требованию, а также планируем каждую ночь) они не были успешно собраны, мы перестраиваем все компоненты, после того, как они были (или если они уже были) построены успешно, мы затем вызываем VisualBUildPro и позволяем ему создать установщик. Visual Build Pro, обрабатывает все копирование и вызов Wise для фактического установщика. Как только установщик создан, мы публикуем его по назначению, где все ожидают. Мы также изменили XSL для издателя электронной почты на сервере сборки, чтобы каждый мог получить ссылку на новейший установщик после его публикации.

Несколько вещей о ночных сборках, если вы можете, попробуйте настроить сервер символов и попросите каждого установщика загружать символы с информацией об исходном коде до них. Это также хороший момент для создания любой документации (D'Oxygen; SandCastle) и времени для запуска ПОЛНОГО набора тестов, который у вас есть.

0 голосов
/ 07 января 2009

Взгляните на WiX . Этот набор инструментов позволяет определить проект установки в форме XML, а затем генерирует msi из этого XML. Тот факт, что проект определен в XML, дает вам большую гибкость для изменения этого XML на лету во время сборки (при необходимости).

Он интегрируется с MSBuild - см. в этой статье , а также хорошо работает с NAnt - см. в этой статье .

...