Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
debose
Member

Откуда: Maza valsts
Сообщений: 1222
Блог
Кто-нибудь из обитателей форума использует автоматизированные сборки (да, запуск .bat-ника - это тоже оно)?

Или хотя бы про сборку под разные версии Delphi.
Расскажите про свой опыт, используемые инструменты (какой билд-сервер, на чём тесты, кто отчёты анализирует, есть ли сбор каких-либо метрик, code coverage, как обрабатываются отчёты, как давно это работает).
22 июл 15, 00:13    [17919405]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 23234
debose
Кто-нибудь из обитателей форума использует автоматизированные сборки (да, запуск .bat-ника - это тоже оно)?

Это ж касается только тех, кто пилит что-то для самих разработчиков. Таких тут вроде не так уж и много...
Можно на пальце одной руки пересчитать.
22 июл 15, 08:55    [17919718]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3205
Вместо батников использую Apache Ant для автоматической сборки продуктов в продакшен. Но запуск вручную (без билд-сервера) и без тестов.

Ant -- тот еще фрукт, много подводных камней и нюансов работы, громозкий xml-синтаксис. Прямо привет из нулевых.
22 июл 15, 09:30    [17919823]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5630
debose,

Набор батников. Батники генерируют (слишком громко сказано - тупой вывод строк в файл) DPK под нужную версию. Потом - запуск DCC32 из установленных. Самая младшая версия - D6. Ну и большой INCLUDE файл с директивами.
22 июл 15, 09:39    [17919857]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
delphinotes
Member

Откуда: Санкт-Петербург
Сообщений: 281
debose,

У нас есть сервер сборки.
Сборки запускаются автоматически:
а) при коммите - чисто чтобы проверить, не забыл ли программист чего закомитить в SCM. В случае ошибки сборки - сразу генерируется письмо, мол build failed;
б) ночные сборки, которые выкладываются на фтп и доступны для скачивания пользователям.

Все предупреждения компилятора, хинты, метрики и прочее - остаются на совести программистов (у нас их не так уж и много, пока не доросли до автоматизации этого)

+
кусочек батника выглядит так
22 июл 15, 09:43    [17919872]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Glays
Member

Откуда:
Сообщений: 2345
wadman
Можно на пальце одной руки пересчитать.

На пальцах одного токаря.
gunsmoker, asviridenkov, Dmitry Arefiev, может ещё кто.

Я пользуюсь TeamCity, но только для базы данных. Из тестов только собралось/не собралось.

Для дельфи хотел как-то в TFS разобраться с BuildServer, но времени нет, тем более для этого нужно гонять админов крутить что-то на самом сервере.
22 июл 15, 09:45    [17919888]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5630
delphinotes,

Кстати, вопрос не в тему - у вас GExperts совместно с CnPack нормально живут?
22 июл 15, 09:51    [17919905]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
delphinotes
Member

Откуда: Санкт-Петербург
Сообщений: 281
DarkMaster,

Конфликты были, но я потом в CNPack почти всё по отключал. Сейчас использую:
-Bookmark Browser
-Project Extension
-Procedure List (это он включает тулбар в редакторе, но я пользуюсь лишь кнопками Jump to interface/implementation)
-IDE Enhancements Settings
-Source Higlight Enhancements (и то в нём только одна галка - Enable Bk Higlight Keyword Structure at Cursor, остальное заметно на глаз как подтормаживает)
-Editor Enhancements (тоже не всё)
-Constraints Editor

Из GExperts активно пользуюсь:
-Ctrl+Alt+Up/Down
-Grep Search/Replace
Ещё он разрешает изменять размеры модальных окон среды (их размер до какой-то версии фиксирован, в Delphi Xe7 это уже не актуально).

..
Были мысли создать свой персональный набор расширений (с использованием Delphi AST)
22 июл 15, 10:50    [17920181]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
schi
Member

Откуда: Москва
Сообщений: 2356
Используем. Без метрик и прочей высоколобой суеты. Из отчетов - сообщения об ошибках сборки.
22 июл 15, 11:30    [17920442]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3205
Вот совсем свежая статья о том, как в RemObjects организовали автоматическую сборку всех своих продуктов с нуля на виртуальных машинах амазона (в т.ч. и делфи). Так сказать, пример серьезного подхода: About our Build System Infrastructure, CI2
22 июл 15, 16:09    [17922100]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
debose
Member

Откуда: Maza valsts
Сообщений: 1222
Блог
delphinotes
debose,

У нас есть сервер сборки.
Сборки запускаются автоматически:
а) при коммите - чисто чтобы проверить, не забыл ли программист чего закомитить в SCM. В случае ошибки сборки - сразу генерируется письмо, мол build failed;

Все предупреждения компилятора, хинты, метрики и прочее - остаются на совести программистов (у нас их не так уж и много, пока не доросли до автоматизации этого)

Интересно, спасибо.
Я так понимаю, что батник использует msbuild для сборки. А msbuild конфиги (.dproj) там те же самые что и у разработчиков, или какие-то отдельные профили настроены?
А сервер сборки - это какой-нибудь jenkins, teamcity, hook на системе контроля версий, что-то еще?
22 июл 15, 17:41    [17922645]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
debose
Member

Откуда: Maza valsts
Сообщений: 1222
Блог
DarkMaster
delphinotes,

Кстати, вопрос не в тему - у вас GExperts совместно с CnPack нормально живут?

У меня нормально. Еще и DdevExtensions и MMX. На D6 и D2010, и XE. Много лет уже.
В CnPacks отключил плагин с оптимизациями. Ну и на D2010 иногда с CnPack-овским автокомплит (Alt+вниз) не запускается.
Ну и кое-где пришлось горячие клавиши под себя настроить (пересекаются).
22 июл 15, 17:45    [17922662]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
delphinotes
Member

Откуда: Санкт-Петербург
Сообщений: 281
debose
Я так понимаю, что батник использует msbuild для сборки.

Именно его. Дёргается как-то так:
"%MSB%" %DPROJ% /nologo /p:Config=%Config% || goto error


debose
А msbuild конфиги (.dproj) там те же самые что и у разработчиков, или какие-то отдельные профили настроены?

Я специально настраивал всё так, чтобы на машине у разработчика можно было собирать релизные сборки.
В Delphi7 (и ниже) - да, там была маята, там переключение между конфигами было через одно место (был отдельный батник, который формировал dcc32.cfg и вызывался dcc32.exe напрямую).
В Delphi2010 - очень удобно в msbuild передать dproj и config.
Конфигов у нас несколько:
- Release, именно он используется в серверной сборке и в него компануется EurekaLog
- Debug, в основном он используется программистами
- Debug With Memory Leak Logging (обычный + FullDebugMode в FastMM)
- и ещё один для внутренних целей.
И все они гибко настраиваются через option set'ы - фишка классная, но IDE их иногда (при правке из IDE) портит.

debose
А сервер сборки - это какой-нибудь jenkins, teamcity, hook на системе контроля версий, что-то еще?

Координатором сборок у нас используется hudson, сборка Delphi-приложений - на виндовой тачке (раньше была реальная, сейчас - виртуальная).
22 июл 15, 20:47    [17923145]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
delphinotes
Member

Откуда: Санкт-Петербург
Сообщений: 281
delphinotes
сборка Delphi-приложений - на виндовой тачке (раньше была реальная, сейчас - виртуальная).

Хотел написать, что на виндовой тачке установлена "голая" Delphi, и всё. Все исходники, в т.ч. сторонние компоненты - есть в SCM, для сборки приложений нет необходимости их устанавливать (и постоянно переустанавливать при обновлении) в среду. Также пути дополнительно прописывать не надо - все необходимые пути прописаны в двух местах:
-пути к сторонним библиотекам/компонентам задаются доп. батником как переменная среды окружения
-пути к нашим библиотекам - задаются в .opset-файлах и .dproj-файлах (как относительные пути от каталога проекта)
22 июл 15, 20:56    [17923168]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Michael Longneck
Member

Откуда: Москва
Сообщений: 2269
FinalBuilder'ом собираю. Там всё - выгрузка из svn, сборка, генерация лицензий, информации о версии, локализационной dll и электронной подписи, сборка инсталлятора. Т.е. полный пакет. Собираются "официальные версии", любые сборки у девелоперов - отладочные. Данные по клиенту и доступным лицензиям автоматом грузятся из redmine, генерится в процессе сборки файл с define'ами. Менеджеры сами заводят клиентов, сами список купленных фич и рабочих станций ставят, а скрипт собирает. Надо только выбрать клиента и релиз. Запускают сборку не программисты.
22 июл 15, 23:44    [17923776]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
debose
Member

Откуда: Maza valsts
Сообщений: 1222
Блог
Michael Longneck, очень толково.
FInalBuilder - полная версия используется? Сборка только для одной версии Delphi?

А автоматом при коммите ничего нигде не собирается чтобы проверить не поломалось ли чего этим коммитом?
22 июл 15, 23:54    [17923801]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Michael Longneck
Member

Откуда: Москва
Сообщений: 2269
Сейчас для двух, но мы поддерживаем релизы (ежемесячные) только полгода, а версию дельфей меняем не чаще раза в год( на деле реже). Автоматом не собирается - смысла нет. Проект собирается 30 сек, каждый сам себе может собрать. Коммиты обычно короткие, только я как архитект быает по полпроекта коммичу. Тестов нет. Тему с анализатором прорабатываю, но код там такой что и без анализатора есть что разгребать.
23 июл 15, 00:01    [17923812]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 11444
Может, кому пригодится

Continuous integration with SVN, Jenkins and DUnit (Delphi) with Craig Chapman - CodeRage XI
2 дек 17, 13:03    [21000410]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
под ван
Guest
Уже 2017-й заканчивается, а Embarcadero Technologies до сих пор в 1080p не научилась скрикасты писать, стыдоба позорная :(
2 дек 17, 16:37    [21000695]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Василий №2
Guest
Уже 2017-й заканчивается, а кто-то все еще юзает SVN ))
4 дек 17, 11:13    [21003494]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 11444
Василий №2, а что правильно было бы юзать?
4 дек 17, 11:47    [21003672]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
schi
Member

Откуда: Москва
Сообщений: 2356
Василий №2
Уже 2017-й заканчивается, а кто-то все еще юзает SVN ))


Я CVS использую и не жужжу.
4 дек 17, 12:45    [21004003]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
bk0010
Member

Откуда:
Сообщений: 3693
Файловую систему с папками, содержащими версии проектов, очевидно.
Картинка с другого сайта.
4 дек 17, 13:06    [21004098]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Василий №2
Guest
X11, git, mercurial... вопрос вкусовщины/холиварный, но после гита свн мне лично кажется очень неуклюжим.
schi, соболезную... хотя всегда ведь должны быть мыши-кактусофаги
4 дек 17, 17:48    [21005146]     Ответить | Цитировать Сообщить модератору
 Re: Сборка проектов с прогоном тестов, статическим анализом, сбором метрик и проч.  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 2677
Василий №2,

А есть в гите аналог свн'овских внешних реп?
4 дек 17, 18:09    [21005199]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить