Разработка решений на платформе ELMA365 / Утилита для CI/CD в low-code решениях

Утилита для CI/CD в low-code решениях

elma365pm — это CI/CD утилита командной строки для работы с объектами конфигурации и модулями ELMA365. Она позволяет экспортировать и распаковывать Решение, Раздел или Модуль из площадки в файловую структуру, а также упаковывать и импортировать их на площадку.

Утилита нужна для реализации этапов Continuous integration / Continuous delivery в рамках культуры DevOps при разработке решений.

Обратите внимание, экспортировать платные системные решения с помощью утилиты elma365pm нельзя.

С примером по организации цикла разработки и выкладки с использованием системы контроля версий git и нескольких окружений dev-test-prod можно ознакомиться в ELMA365 Community в статье «Рекомендации по Low-code DevOps».

Загрузка утилиты

По ссылкам ниже вы можете загрузить версию утилиты, совместимую с нашим публичным облаком и самой последней версией On-Premises:

Возможности утилиты

Для получения справки после загрузки выполните команду:

elma365pm --help

На текущий момент доступны следующие функции:

elma365pm unpack

Распаковать пакет экспорта .e365 в файловую систему

elma365pm pack

Упаковать директорию в пакет .e365

elma365pm export solution

Экспортировать решение из ELMA365 в директорию файловой системы

elma365pm export namespace

Экспортировать раздел из ELMA365 в директорию файловой системы

elma365pm export module

Экспортировать модуль из ELMA365 в директорию файловой системы

elma365pm import

Импортировать объекты в ELMA365

elma365pm export configuration

Экспортировать конфигурацию ELMA365 в директорию файловой системы. Команда работает в ELMA365 On-premises 2022.11 и выше

Чтобы получить более подробные инструкции по использованию каждой команды выполните:

elma365pm <command> --help

Например, для экспорта решения с площадки в папку на диске можно выполнить команду:

elma365pm export solution --token=TOKEN --host=https://dev-elma365.myorg --out=my_solution --code=my_solution_code

Обратите внимание, если в экспортируемом решении есть связь с компонентами другого решения, в функции экспорта нужно использовать параметр --allow-deps со значением true:

elma365pm export solution --token= TOKEN --host= https://dev-elma365.myorg --out= my_solution --code= my_solution_code --allow-deps=true 

Если не использовать параметр --allow-deps или установить для него значение false, решение со связанными компонентами не экспортируется.

Для упаковки с диска и импорта обратно на площадку:

elma365pm import --token=TOKEN --host=https://dev-elma365.myorg --src=my_solution --version-up

Где TOKEN — это веб-токен, который создан для пользователя с правами администратора.

Файловая структура решения

При распаковке решения в файлы командой export вы увидите в целевой папке примерно следующую структуру (в данном случае мы взяли готовое бизнес-решение Служебные записки):

Файловая структура

На верхнем уровне находятся папки сервисов, т. к. архитектура системы микросервисная. В каждой папке сервиса обычно есть файл manifest.json и 2 папки entities и resources. В корне также лежит файл package.json, в котором описаны основные данные выгруженного решения или раздела.

В основном файлы в структуре делятся на 3 типа:

  1. Файлы описаний конфигурации — это файлы формата .json или файлы без расширения, также являющиеся JSON-файлами. В этих файлах можно найти описание полей и настройки приложения, описание процесса, виджеты и модули.
  2. Файлы скриптов — это файлы формата .ts, в которых хранятся тексты скриптов процессов, виджетов, модулей.

Файлы скриптов распаковываются для удобного просмотра и совместного ревью кода. Содержимое этих файлов не упаковывается в пакет при импорте.

Обратите внимание, с версии ELMA365 2022.11 вы можете редактировать распакованные файлы скриптов, а также использовать файлы-автодополнения для удобства работы в редакторах кода.

  1. Прочие файлы ресурсов или локализации. Такие файлы обычно находятся в папке resources. Локализация пакетов решений в будущем будет переработана, поэтому сейчас файлы локализации используются ровно один раз при первом импорте пакета. Вы можете вносить изменения прямо в эти файлы, и они будут упакованы утилитой.