Система непрерывной интеграции для Delphi

Существуют ли CI-системы для Delphi, такие как Hudson для Java? Есть ли у Гудзона какие-нибудь интеграции Delphi?

11 ответов

Решение

Мы используем Hudson:), который отлично работает с Delphi.

Вот полная настройка для одного из моих проектов:

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.CVSSCM">
    <cvsroot>:sspi:cvsonly:foo@bar:/baz</cvsroot>
    <module>SIP</module>
    <canUseUpdate>false</canUseUpdate>
    <flatten>true</flatten>
    <isTag>false</isTag>
    <excludedRegions></excludedRegions>
  </scm>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <triggers class="vector"/>
  <builders>
    <hudson.tasks.BatchFile>
      <command>&quot;C:\Program Files\Nant\bin\nant&quot; -buildfile:etc\sip.build build-d7 test</command>
    </hudson.tasks.BatchFile>
  </builders>
  <publishers>
    <hudson.tasks.BuildTrigger>
      <childProjects>quux, foozle, wibble</childProjects>
      <threshold>
        <name>SUCCESS</name>
        <ordinal>0</ordinal>
        <color>BLUE</color>
      </threshold>
    </hudson.tasks.BuildTrigger>
  </publishers>
  <buildWrappers/>
</project>

Цель sip.build delphi-7 создает набор тестов проекта (DUnit's TextTestRunner), и поэтому результатом работы является просто число неудачных / ошибочных тестов благодаря:

var
  R: TTestResult;

begin
  R := TextTestRunner.RunRegisteredTests;
  ExitCode := R.ErrorCount + R.FailureCount;
end;

Мы используем CruiseControl.NET, который отлично работает с Delphi.

Кажется, Эмбаркадеро сам использует Гудзон. Смотрите комментарий Ника Ходжеса, менеджера по развитию в Embarcadero. http://blogs.embarcadero.com/nickhodges/2010/03/10/39369

Хадсон великолепен, он также доступен в качестве настройки MSI. Пользователи более старых версий Delphi (до MSBuild) могут создавать сценарии сборки с помощью популярных сред сценариев сборки Apache Ant и NAnt. Конечно, возможна и простая сборка из командной строки (пакетный скрипт).

Одним из основных моментов этого установщика является то, что он поставляется с JRE, чтобы быть полностью автономным. Это связано с тем, что пользователи Windows обычно не знают, что делать с файлом *.war, и, как правило, им не нравится переходить в командную строку и запускать команду Java вручную.

Так что это легко попробовать, не пройдя сначала слишком много установщиков и командных строк.

И после установки обязательно посетите страницу плагинов в приложении для администрирования, есть много доступных расширений, которые также полезны для разработчиков Delphi. Обзор плагинов онлайн здесь.

Инструменты Hudson для Delphi: здесь также есть инструмент Code Coverage для Delphi с поддержкой Hudson.

TeamCity - еще одна очень хорошая система CI. Это коммерческий продукт, но он предлагает бесплатную лицензию на срок до 20 пользователей и 20 конфигураций сборки на 3 агента сборки.

Bamboo - это система CI для любого языка. Это доступно от Atlassian. Его цена начинается с 10 долларов - это включает в себя все функции и неограниченное количество пользователей, но ограничено 10 планами, запускать сборки только на сервере, на котором он установлен. Он может использовать экземпляры Amazon Elastic Compute Cloud в качестве удаленных агентов.

Автоматизированная сборка Studio от SmartBear. С Automated Build Studio Server он представил CI за некоторое время до FinalBuilder.

Мы используем Дженкинса. У Jenkins есть плагин RAD Studio для интеграции компиляции проектов Delphi в задания. Его (плагин) использовать не обязательно, мы используем инструменты командной строки и MSBuild для компиляции проектов.

Проект DUnItX (для создания модульного тестирования) интегрируется с Дженкинс.

Здесь вы можете найти несколько статей об интеграции Jenkins и Delphi. Введение, установка,... На испанском языке, но вы можете переводить без проблем, а с включенными изображениями и кодом довольно просто.

1- Интеграция континуума с Delphi (GIT) (ВВЕДЕНИЕ)
2- Интеграция континуума с Delphi (Дженкинс) - Установка (УСТАНОВКА)
3- Интеграция континуума с Delphi (Дженкинс) - Начальный проект (ПЕРВЫЙ ПРОЕКТ)
4- Интеграция континуума с Delphi (Дженкинс)) - Трубопроводы (ИСПОЛЬЗОВАНИЕ ТРУБОПРОВОДОВ)

Добавьте наш Parabuild к списку инструментов, чтобы проверить - он собирает практически все, что может быть построено из командной строки - включая Delphi, и обеспечивает интеграцию с Perforce и другими системами контроля версий, такими как Git и Bazaar.

Hudson прост в использовании с некоторыми веб-помощниками, поскольку проекты Delphi создаются с помощью MSBuild.

Если вам нужна дополнительная настройка и интеграция сторонних инструментов (например, интеграция инструментов метрик), то CruiseControl.NET является идеальным решением.

Взгляните на мою страницу CC.NET Dashboard для DelphiCodeToDoc (и вы также можете посмотреть файл конфигурации). Я делаю checkout + компиляцию версии графического интерфейса и командной строки и юнит-тест + выполнение юнит-теста и отчет + ftp загрузка сборки сборки.

Другой вариант (хотя и не бесплатный, $10 для ограниченного числа пользователей) - это Atlassian Bamboo. И JetBrains TeamCity является еще одним бесплатным (с ограниченным числом пользователей). Я пробовал оба с Delphi 2009/2010, и они работают довольно хорошо. Оба позволили интеграцию с Perforce среди других SCM.

Э -э-э, вы можете определить, что вы на самом деле ищете?

Вы используете фразу continuous integration, но ты просто имеешь в виду continuous build чтобы убедиться, что он компилируется и нравится, или вы действительно имеете в виду continuous integration в том смысле, что вы также запускаете регрессионные тесты?

Мне было бы интересно, как вы это делаете (Авто-это?).

Не то, чтобы это действительно имело большое значение, потому что замечательный Hudson (который определенно не только для Java) имеет множество плагинов, но также позволит вам выполнить пакетный сценарий DOS - любой сценарий, который вы захотите написать, построить, тестировать, сообщать о результатах и ​​т. д.

Просто добавьте мою поддержку CruiseControl.NET, поскольку Delphi 2007 и выше основаны на MSBuild, и тогда не должно быть проблем со сборками через CC.NET. Где-то есть патч для DUNit, который выводит результаты в файл XML, и его можно затем интегрировать в диаграммы результатов сборки.

Мы используем систему Jenkins CI с инструментом Owly CI в качестве системы сборки и обработчика зависимостей.

Взгляните на этот урок

Первоначальная настройка занимает не более 5 минут

Другие вопросы по тегам