|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
В данный момент сборка проекта происходит следующим образом: В директории pathToXmlFiles расположены xml файлы классов. Далее выполняется: Код: plaintext 1. 2.
Основная проблема заключается в том, что при развёртывании проекта приходится копировать xml файлы на целевой сервер, а потом запускать сборку (которая занимает определённое время). Хотелось бы упростить и ускорить процесс. Пока что вижу 2 варианта решения: 1) Выполнять сборку на специально предназначенном сервере сборки, а потом копировать CACHE.DAT на целевой сервер. 2) Использовать методы DeployToGbl и InstallFromGbl класса %Studio.Project. Deploy на серевере сборки, Install на целевом сервере. Второй вариант выполняет все операции над проектом. Проектами мы не пользуемся, потому необходимо будет загружать все xml файлы в проект. Хотелось бы узнать ваше мнение по этому поводу. Какой из вариантов лучше? Может быть есть ещё какие-то способы? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 08:51 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
Мы пользуемся сборкой проекта, с деплоем кода процесс такой Исходники у нас все системе контроля версий Subversion. Там у нас хранится MAC, CLS, INC, папка CSP. Для сборки у нас используется Jenkins. В нем настроена задача, каждый час проверять наличие свежих коммитов в системе контроля версий. Jenkins обновляет папку сборки новыми коммитами, и запускает скрипт в котором формируется Caché скрипт для терминала. этот скрипт грузит в область user код сборки версии, в который передается необходимые для этого параметры, путь к папке с исходниками и название сборки. код для сборки основан на %Installer, в нем создается новая область в которую грузится и компилируется весь код, деплоется, отмонтируется и копируется cache.dat в выходную папку сборки. туда и csp и все остальное необходимое для обновления у клиента. процесс обновления заключается, в подмене бд с кодом и запуск программы автообновления. Пока все это в ручном режиме. процесс сборки версии занимает 10-15 минут в зависимости от версии Caché. CACHE.DAT около 400МБ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 13:07 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
Можно посмотреть материалы со школы и с саммита, там Сергей Шутов как раз показывает примеры по использованию SVN, Jenkins ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 13:08 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
Petr0vi4444, предлагаю CacheGitHubCI - систему Continuous Integration / Continuous Delivery для Cache и GitHub.Если не хотите использовать GitHub можно легко адаптировать для своего сервера GitLab или чего-то аналогичного, лишь бы было WebAPI . По поводу ваших решений: 1) Небходим контроль того, что сборка проходит с нуля, чтобы не потерять знания о процессе сборки 2) Это вы хотите на сервере сборки создать новую базу, туда DeployToGbl, затем подключить базу как удалённую на целевом сервере и InstallFromGbl? Или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 13:22 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
CacheGitHubC написан полностью на COS, процесс получения обновлений автоматизирован. Возможна настройка таким образом, что сборка начинается сразу после получения нового коммита в системе контроля версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 13:30 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
eduard93, Вообще есть идея сделать два варианта сборки: полная и частичная. С частичной сложнее конечно, придётся запоминать какую версию собирали + анализировать лог на предмет того, какие файлы изменились. DeployToGbl умеет экспорт в файл или БД, планируется так же копировать результат на целевой сервер. CacheGitHubCI посмотрю, думаю это подойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 15:17 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
DAiMor, Видел материалы со школы 2013 года, но там по моему нет использования %Installer. Вообще я не до конца понял чем удобен %Installer, у него довольно громоздский XML синтаксис, а всё что он делает можно так же написать самому на COS. Чем забираете файл из выходной папки сборки? Она у вас просто примонтирована на целевой сервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 15:22 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 17:56 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
Petr0vi4444Вообще я не до конца понял чем удобен %Installer, у него довольно громоздский XML синтаксис, а всё что он делает можно так же написать самому на COS.Удобство в том, что можно одним описанием в XData описать все что нужно. Да там действительно не было явно про это, просто там был сервер Jenkins который через %Installer собирал на тестовом сервере все изменения. Но это не было освещено. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 18:20 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
Petr0vi4444Чем забираете файл из выходной папки сборки? Она у вас просто примонтирована на целевой сервер?Что значит чем забираем ? у нас на сборщике даже наше приложения по факту нет, только компиляция. %Installer загружает, компилирует, потом отмонтирует базу и копирует CACHE.dat в папку предназначенную для передачи обновления клиенту. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2015, 18:23 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
DAiMorможно одним описанием в XData описать все что нужно Из опыта использования, оказалось что не всё ( настройка web-приложения и что-то еще ). Получилась смесь - в XData прописан вызов кастомного метода, а уже в нем всё остальное ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 17:00 |
|
Сборка и развертывание проекта
|
|||
---|---|---|---|
#18+
doublefintDAiMorможно одним описанием в XData описать все что нужно Из опыта использования, оказалось что не всё ( настройка web-приложения и что-то еще ). Получилась смесь - в XData прописан вызов кастомного метода, а уже в нем всё остальное ...Ну да, это точно прям совсем всего там нет, но есть возможность добавить кастомный метод со своим кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 17:04 |
|
|
start [/forum/topic.php?fid=39&msg=38972387&tid=1556651]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 136ms |
0 / 0 |