powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сборка и развертывание проекта
12 сообщений из 12, страница 1 из 1
Сборка и развертывание проекта
    #38972279
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данный момент сборка проекта происходит следующим образом:
В директории pathToXmlFiles расположены xml файлы классов.
Далее выполняется:
Код: plaintext
1.
2.
 Do $SYSTEM.OBJ.DeleteAll("-d")
 Do $SYSTEM.OBJ.LoadDir(pathToXmlFiles,"-d",,1)
 Do $SYSTEM.OBJ.CompileAll("-dcbkry",.errors)
Далее выполняется программа обновления до последней версии.

Основная проблема заключается в том, что при развёртывании проекта приходится копировать xml файлы на целевой сервер, а потом запускать сборку (которая занимает определённое время). Хотелось бы упростить и ускорить процесс.

Пока что вижу 2 варианта решения:
1) Выполнять сборку на специально предназначенном сервере сборки, а потом копировать CACHE.DAT на целевой сервер.
2) Использовать методы DeployToGbl и InstallFromGbl класса %Studio.Project. Deploy на серевере сборки, Install на целевом сервере.

Второй вариант выполняет все операции над проектом. Проектами мы не пользуемся, потому необходимо будет загружать все xml файлы в проект.

Хотелось бы узнать ваше мнение по этому поводу.

Какой из вариантов лучше?
Может быть есть ещё какие-то способы?
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972342
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы пользуемся сборкой проекта, с деплоем кода
процесс такой

Исходники у нас все системе контроля версий Subversion. Там у нас хранится MAC, CLS, INC, папка CSP.
Для сборки у нас используется Jenkins.
В нем настроена задача, каждый час проверять наличие свежих коммитов в системе контроля версий.
Jenkins обновляет папку сборки новыми коммитами, и запускает скрипт
в котором формируется Caché скрипт для терминала.
этот скрипт грузит в область user код сборки версии, в который передается необходимые для этого параметры, путь к папке с исходниками и название сборки.
код для сборки основан на %Installer, в нем создается новая область в которую грузится и компилируется весь код, деплоется, отмонтируется и копируется cache.dat в выходную папку сборки. туда и csp и все остальное необходимое для обновления у клиента.

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

процесс сборки версии занимает 10-15 минут в зависимости от версии Caché. CACHE.DAT около 400МБ
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972343
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно посмотреть материалы со школы и с саммита, там Сергей Шутов как раз показывает примеры по использованию SVN, Jenkins
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972348
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petr0vi4444, предлагаю CacheGitHubCI - систему Continuous Integration / Continuous Delivery для Cache и GitHub.Если не хотите использовать GitHub можно легко адаптировать для своего сервера GitLab или чего-то аналогичного, лишь бы было WebAPI .

По поводу ваших решений:
1) Небходим контроль того, что сборка проходит с нуля, чтобы не потерять знания о процессе сборки
2) Это вы хотите на сервере сборки создать новую базу, туда DeployToGbl, затем подключить базу как удалённую на целевом сервере и InstallFromGbl? Или как?
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972351
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheGitHubC написан полностью на COS, процесс получения обновлений автоматизирован. Возможна настройка таким образом, что сборка начинается сразу после получения нового коммита в системе контроля версий.
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972387
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eduard93,

Вообще есть идея сделать два варианта сборки: полная и частичная. С частичной сложнее конечно, придётся запоминать какую версию собирали + анализировать лог на предмет того, какие файлы изменились.

DeployToGbl умеет экспорт в файл или БД, планируется так же копировать результат на целевой сервер.

CacheGitHubCI посмотрю, думаю это подойдёт.
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972390
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Видел материалы со школы 2013 года, но там по моему нет использования %Installer.
Вообще я не до конца понял чем удобен %Installer, у него довольно громоздский XML синтаксис, а всё что он делает можно так же написать самому на COS.

Чем забираете файл из выходной папки сборки? Она у вас просто примонтирована на целевой сервер?
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972438
eduard93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petr0vi4444, %Installer - штатный вариант установщика, предоставляемый InterSystems который:
будет работать даже в случае изменения в новых версиях какого-либо внутреннего API используемого при установке, например создание областей и.т.д.

не надо думать о том, где вы находитесь - в области %SYS или целевой области

автоматически доступны параметры системы, см список ниже

при первичной установке продуктов InterSystems может быть автоматически вызван ваш установщик в конце установки (для этого необходимо экспортировать ваш установщик в файл DefaultInstallerClass.xml в папку с дистрибутивом)

Список доступных переменных:
CFGDIR See INSTALLDIRCFGNAME Instance nameCPUCOUNT Number of operating system CPUsCSPDIR CSP directoryHOSTNAME Name of the host serverHTTPPORT Web server portINSTALLDIR Directory into which Cache is installedMGRDIR Manager (mgr) directoryPLATFORM Operating systemPORT Cache superserver portPROCESSOR Processor chipVERSION Cache version numberSourceDir Directory from which the installation (setup_cache.exe or cinstall) is runningISCUpgrade 0 (new installation) or 1 (upgrade)
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972443
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petr0vi4444Вообще я не до конца понял чем удобен %Installer, у него довольно громоздский XML синтаксис, а всё что он делает можно так же написать самому на COS.Удобство в том, что можно одним описанием в XData описать все что нужно.
Да там действительно не было явно про это, просто там был сервер Jenkins который через %Installer собирал на тестовом сервере все изменения. Но это не было освещено.
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38972444
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petr0vi4444Чем забираете файл из выходной папки сборки? Она у вас просто примонтирована на целевой сервер?Что значит чем забираем ?
у нас на сборщике даже наше приложения по факту нет, только компиляция. %Installer загружает, компилирует, потом отмонтирует базу и копирует CACHE.dat в папку предназначенную для передачи обновления клиенту.
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38973555
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorможно одним описанием в XData описать все что нужно
Из опыта использования, оказалось что не всё ( настройка web-приложения и что-то еще ).
Получилась смесь - в XData прописан вызов кастомного метода, а уже в нем всё остальное ...
...
Рейтинг: 0 / 0
Сборка и развертывание проекта
    #38973564
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMorможно одним описанием в XData описать все что нужно
Из опыта использования, оказалось что не всё ( настройка web-приложения и что-то еще ).
Получилась смесь - в XData прописан вызов кастомного метода, а уже в нем всё остальное ...Ну да, это точно прям совсем всего там нет, но есть возможность добавить кастомный метод со своим кодом.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сборка и развертывание проекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]