CruiseControl.NET и настройка веб-интерфейса - PullRequest
0 голосов
/ 19 октября 2011

все!

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

  • Обновление исходного кода из SVN
  • Создание решения VisualStudio (C ++ & C #)
  • Сборка дистрибутивов
  • Перемещение дистрибутивов в определенную папку сервера

С другой стороны, у нас есть около 200 различных дистрибутивов одного проекта. Мы не хотим делать их все каждый день, но в течение дня некоторым людям нужно создавать какие-то дистрибутивы. Изначально у нас был файл cmd для сборки проекта. Затем я написал простой веб-интерфейс для генерации cmd-файлов и организации очереди сборки. Это решение приемлемо, но
его обслуживание становится действительно болезненным по мере роста проекта.

Теперь у меня есть выбор - использовать CruiseControl.NET (или что-то в этом роде) или улучшить свою собственную программу. Что мне действительно нужно, это:

  1. Веб-интерфейс, где пользователь может выбрать дистрибутив и некоторые параметры сборки
  2. Веб-интерфейс с некоторой статистикой (сборки, которые были сделаны, текущая версия хранилища, текущая версия рабочей копии и т. Д.)
  3. Гибкая конфигурация для настройки процесса сборки

Насколько я знаю, я могу получить (2) и (3) из коробки с CruiseControl.NET, но как насчет (1)? Кроме того, я не уверен, что использование CI-сервера, когда мне фактически не нужен CI, является хорошим решением.

Итак, вот мой вопрос: это хорошее решение использовать CC.NET или я должен улучшить свою собственную программу?

P.S. Я прочитал эту статью , но я все еще не уверен в возможностях веб-интерфейса CC.NET ...

Ответы [ 2 ]

0 голосов
/ 22 октября 2011

Мы достигли # 1 с ccnet, создавая cc-проект для каждого необходимого значения определенного «параметра».

Мы начали с инкрементной сборки и полной сборки в ccnet.

Инкрементная сборка обновила рабочую копию, собрала ее, запустила частичный набор тестов и отправила результаты по электронной почте.

Полная сборка обновила другую рабочую копию, перестроила решение, запустила все юнит-тесты, сгенерировала установщики, экспортировала установщики в определенные места и, наконец, запустила регрессионные тесты на других назначенных тестовых машинах.

Полная сборка сделала много вещей, и иногда мы хотели только пересобрать код и сгенерировать установщики.Мы хотели избежать запуска юнит-тестов и порождать регрессионные тесты.

Поэтому мы добавили еще один проект cc под названием fullbuild_notest.Это выполняет те же цели nant, что и полная сборка, за исключением того, что пропускает часть тестирования.У нас есть файл сборки nant, который является своего рода загрузчиком с точками входа.Вначале мы устанавливаем для свойства с именем «fullbuild-testing-enabled» значение true или false, а затем вызываем дочернюю цель для фактического построения.Дочерняя цель и ее дочерние элементы проверяют флаг «fullbuild-testing-enabled», чтобы определить, стоит ли проводить тестирование.

В некотором смысле это хорошо, потому что дает пользователям панели мониторинга определенный набор вариантов.И в некотором смысле это громоздко, потому что каждый раз, когда требуется новый параметр или значение параметра, требуется изменение кода nant / ccnet.

0 голосов
/ 19 октября 2011

Вы всегда можете иметь смешанный режим: Ваше собственное небольшое приложение , обслуживающее задачи интеграции CC.NET или HUDSON.

Изменить интерфейс этих инструментов не так просто, как модификация внешнего вида.

...