Администрирование системы  > Инструменты разработчика / Непрерывная интеграция и выкладка (Low-code CI/CD)

Непрерывная интеграция и выкладка (Low-code CI/CD)

Непрерывная интеграция и Непрерывная сборка и выкладка (CI — Continuous integration, CD — Continuous delivery and deploy) — это подход к разработке комплексных пользовательских решений с использованием цикла Разработка > Тестирование > Эксплуатация (Develop > Test > Production).

С таким способом разработки решение проходит три этапа: создаётся, тестируется, передаётся в эксплуатацию. Для выполнения каждого этапа предназначается отдельная компания. Она регистрируется в своём окружении:

  • dev-компания — для стадии разработки;
  • test-компания — для тестирования разработанного решения;
  • prod-компания — для эксплуатации конечными пользователями.

Решение переходит на следующий этап с помощью экспорта в компанию в другом окружении.

Подход CI/CD позволяет разрабатывать пользовательские решения короткими итерациями, поддерживать их версионность и целостность и работать с ними параллельно в трёх окружениях.

В ELMA365 для реализации подхода CI/CD предусмотрено несколько инструментов, которые можно использовать независимо друг от друга:

  • утилита elma365pm — вспомогательная независимая утилита командной строки применяется совместно со сторонними сервисами контроля версий и настройки пайплайнов, например, GitLab. Утилита позволяет экспортировать в файл компонент конфигурации компании (раздел, модуль или решение). Затем работа осуществляется в стороннем сервисе, что позволяет использовать операции из High-code разработки. Компонент обновляется до новой версии, упаковывается в файл и импортируется в другую компанию. Подробнее читайте в статье «Утилита elma365pm для CI/CD в решениях»;
  • инструмент Непрерывная выкладка (Low-code CI / CD) — универсальный инструмент обмена компонентами между компаниями из разных окружений. Работа выполняется в интерфейсе ELMA365 на основе стандартных процессов экспорта и импорта. Компании связываются между собой. Затем настраивается операция обмена: выбираются компоненты конфигурации, указывается тип операции и т. д. Профиль обмена сохраняется, что позволяет выполнять операцию несколько раз. Присутствует возможность сравнить конфигурации двух компаний и проанализировать результат выполнения операции. Процесс обмена выполняется в фоновом режиме.

Подробную информацию о подходе к разработке CI/CD, а также рекомендации по его осуществлению вы можете найти в ELMA365 Community.

В этой статье рассмотрим подробнее настройку инструмента Непрерывная выкладка (Low-code CI / CD) и работу с ним.

начало внимание

В ELMA365 On-premises инструмент Непрерывная выкладка (Low-code CI / CD) можно использовать, если текущая и внешняя компании обновлены до версии 2024.1 или выше.

В разделе Администрирование инструмент доступен с версии 2024.4. В более ранних версиях администратору системы нужно включить фича-флаг enableLowcodeCICD. Подробнее об этом читайте в статьях «Изменение параметров On-Premises Enterprise» и «Изменение параметров On-Premises Standard».  

конец внимание

Терминология

В статье используются следующие термины:

  • Компания — зарегистрированная и лицензированная платформа ELMA365 в одном из вариантов поставки: SaaS, On-Premises;
  • Окружение (среда) — компания, которая регистрируется отдельно для определённого этапа работы с решением: разработки, тестирования, эксплуатации (dev, test, prod). Для регистрации и лицензирования компаний в dev и test окружениях обратитесь к вашему менеджеру ELMA365;
  • Конфигурация — структура, включающая в себя: установленные и пользовательские решения, разделы, модули и их содержимое, бизнес-процессы, группы, виджеты, шаблоны документов и другие сущности, созданные на уровне компании, организационную структуру и номенклатуру дел;
  • Текущая конфигурация — компания, в которой настраивается связь и операция обмена;
  • Внешняя конфигурация — компания, с которой производится обмен компонентами конфигурации;
  • Привязка — связь, созданная между двумя компаниями для обмена компонентами текущей и внешней конфигураций. Связанные компании могут быть зарегистрированы в одинаковом или разных окружениях;  
  • Профиль обмена — операция, которая определяет процесс экспорта или импорта между связанными компаниями. В профиле указываются компоненты для обмена, которые могут включать разделы, модули, решения или всю конфигурацию. Позволяет сравнивать текущую и внешнюю конфигурации и просматривать результаты обмена. Профиль может использоваться многократно для проведения операций обмена.  

Настройка непрерывной выкладки (Low-code CI / CD)

Страница Непрерывная выкладка (Low-code CI / CD) доступна администраторам системы в разделе Администрирование > Инструменты разработчика.

Страница включает в себя три вкладки: Привязки, Профили, Уведомления. На них настройка и работа с непрерывной выкладкой производится следующим образом:

  1. Устанавливается связь между двумя компаниями для осуществления обмена текущей или внешней конфигурацией.
  2. Создаётся профиль обмена, в котором указывается выполняемая операция — экспорт или импорт, выбираются объекты обмена и задаются условия решения возможных конфликтов.
  3. Осуществляется сравнение двух конфигураций и их компонентов, выбранных в профиле обмена. Выявляются различия и анализируется результат выполнения операции обмена.
  4. Выполняется проверка созданного профиля, с помощью которой выявляются возможные ошибки процесса обмена.
  5. Запускается операция обмена по заданному профилю.
  6. Опционально настраивается канал для уведомлений о неуспешно выполненных операций обмена.  

Установить связь между двумя компаниями

Для реализации непрерывной интеграции (CI) и непрерывной сборки и выкладки (CD) в ELMA365 настраивается обмен компонентами между двумя компаниями в разных окружениях. Для этого текущая компания связывается с внешней компанией при помощи создания привязки.

Рекомендуется связать компании в разных окружениях следующими парами: разработка/тестирование (dev/test), тестирование/эксплуатация (test/prod).

В каждой паре первая компания (например, dev) является текущей конфигурацией, в которой создаётся привязка. Вторая компания (например, test) выступает в качестве внешней конфигурации, с которой выполняется обмен. Это позволит последовательно перемещать версии решений между компаниями, из dev-окружения в test, а затем из test-компании в prod.

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

Регистрация и лицензирование компаний в dev и test окружениях осуществляется через менеджера ELMA365.

начало внимание

В ELMA365 SaaS можно установить только одну связь с внешней компанией и настроить одну операцию обмена между ними.

В поставке On-Premises можно связывать компании, если они обновлены до версии 2024.1 или выше. При этом ограничения по количеству добавляемых привязок и профилей отсутствуют.

конец внимание

Чтобы привязать одну компанию к другой, выполните следующие действия:

  1. Перейдите в ELMA365, которую необходимо привязать, например, в test-компанию. Откройте раздел Администрирование > Токены и создайте токен для связи.
  2. Откройте ELMA365, где нужно создать связь, например, dev-компанию для разработки. Перейдите в раздел Администрирование > Инструменты разработчика и выберите страницу Непрерывная выкладка (Low-code CI / CD).
  3. На вкладке Привязки нажмите + Создать и в открывшемся окне заполните поля:

low-code-CI-CD-1

  • Имя* — задайте название привязки, которое будет отображаться в списке, например, Тестовая среда;
  • Url* — укажите URL-адрес главной страницы внешней компании;
  • Токен* — скопируйте токен, созданный во внешней компании на шаге 1, и вставьте его в поле.  
  1. Сохраните настройки.

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

Если для привязки не добавлены профили обмена, вы можете отредактировать её данные или удалить связь с внешней компанией. Для этого нажмите на название привязки в списке и выполните действие в её карточке. Если вы увидели предупреждение о существующих операциях обмена, удалите их на вкладке Профили и повторите действие.

Создать профиль обмена

После привязки внешней конфигурации к компании, вы можете осуществлять обмен компонентами. Для этого создаётся профиль обмена.

В профиле указывается, с какой внешней конфигурацией выполняется обмен и определяется тип операции (экспорт или импорт данных). Затем отмечаются объекты для обмена — выбрать можно все объекты, входящие в конфигурацию, или её отдельные компоненты. Также в профиле задаётся стратегия разрешения конфликтов в процессе обмена.

В ELMA365 SaaS можно настроить только одну операцию обмена. В поставке On-Premises отсутствуют ограничения по количеству профилей обмена, например, можно добавить профиль для каждого пользовательского решения, разработанного в dev-компании.

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

Например, в dev-окружении разработаны несколько пользовательских решений. Вы можете экспортировать их в другую компанию для тестирования функциональных возможностей. Для этого в тестовой компании создайте профиль обмена, включите в него все решения из dev-окружения и запустите операцию экспорта. Когда в dev-компании будут разработаны новые версии решений, вы сможете перенести их в тестовое окружение, выполнив тот же профиль обмена.

Чтобы создать профиль обмена:

  1. Перейдите в раздел Администрирование > Инструменты разработчика > Непрерывная выкладка (Low-code CI / CD) и откройте вкладку Профили.
  2. В правом верхнем углу страницы нажмите + Создать и заполните детали обмена:

low-code-CI-CD-2

  • Имя* — задайте название обмена, которое будет отображаться в списке профилей;
  • Привязка* — выберите внешнюю конфигурацию, т. е. привязку, созданную на странице Непрерывная выкладка (Low-code CI / CD) на вкладке Привязки;
  • Направление* — укажите операцию для профиля обмена:
    • Импорт — компоненты внешней конфигурации загружаются в текущую компанию;
    • Экспорт — компоненты текущей конфигурации переносятся в привязанную внешнюю компанию.
  • Стратегия* — выберите способ решения конфликтов, возможных при выполнении операции обмена. Конфликты могут возникать, если выявлена несовместимость между компонентами текущей и внешней конфигураций, например, обмен совершается не последовательно между версиями компонентов или переносимые объекты были изменены в обеих компаниях. Если при обмене хотя бы в одном компоненте обнаружен конфликт, операция производится согласно заданной стратегии:
    • Заменить объекты — при возникновении конфликтов существующие компоненты целевой конфигурации будут полностью заменены на импортируемые объекты. Такая стратегия обмена может привести к некорректной работе компонентов целевой конфигурации. Например, если в скриптах используются свойства приложения, которые по результатам обмена удалятся, такой скрипт не будет исполняться;
    • Сохранить объекты — если при обмене найдены конфликтующие компоненты, сохраняется версия целевой конфигурации, а операция обмена отменяется, т. е. завершается с ошибкой. Например, в контекст одного приложения добавлены различные свойства в тестовой и эксплуатационной конфигурации. При обмене компонентами возникнет конфликт, и импорт будет невозможен.    
  • Элементы Конфигурации — нажмите Выбрать. В зависимости от указанной операции откроется структура конфигурации: при импорте показывается состав внешней системы, при экспорте — элементы текущей компании. Отметьте флажком компоненты, которые будут перенесены в другую конфигурацию, и нажмите Применить.
    • Орг. структура* — если в профиле выбирается обмен конфигурацией целиком, дополнительно укажите необходимость переноса организационной структуры.

Обратите внимание, перенести можно только те компоненты, для которых доступен экспорт. Например, если в эксплуатационной ELMA365 активировано платное бизнес-решение из каталога ELMA365 Store, его нельзя выбрать для экспорта в тестовую среду.

В процессе обмена связанными друг с другом решениями в Low-code CI / CD не нужно создавать зависимости между ними, в отличии от процесса экспорта таких решений в отдельные файлы .e365 и последующего импорта файлов в другую компанию. Если решения работают вместе, они экспортируются в одном профиле обмена. После выполнения операции все связи в объектах сохранятся.

  1. Сохраните настроенный профиль обмена.

Все созданные профили обмена отображаются на странице Непрерывная выкладка (Low-code CI / CD) на вкладке Профили.

low-code-CI-CD-3

Указанные в профиле направление и стратегия отмечаются в списке значками:

  • ci-cd-import-icon, ci-cd-export-icon — импорт, экспорт;
  • ci-cd-replace-objects-icon, ci-cd-save-objects-icon — заменить объекты, сохранить объекты.

Чтобы убрать профиль из списка, поставьте флажок рядом с его названием и нажмите появившуюся в правом верхнем углу страницы кнопку Удалить.

Сравнить компоненты конфигураций из профиля обмена

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

Для этого на странице Непрерывная выкладка (Low-code CI / CD) откройте вкладку Профили и напротив созданного профиля обмена нажмите значок ci-cd-compare-components-icon.

В открывшемся окне сформируются структуры двух конфигураций со всеми объектами, которые добавлены в выбранный профиль:

  • Целевая конфигурация — это структура конфигурации, которая будет изменена при выполнении профиля обмена. Например, при операции импорта целевой будет являться текущая компания, при экспорте — внешняя конфигурация;
  • Входящие изменения — это компоненты из той конфигурации, которая будет перенесена в целевую компанию.

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

low-code-CI-CD-4

Компоненты отмечаются цветовыми обозначениями, которые соответствуют статусам:

  • low-code-CI-CD-status-new — созданные компоненты, которые при выполнении обмена добавятся в целевую конфигурацию. Например, в эксплуатационную ELMA365 загрузится новое решение из тестового окружения;
  • low-code-CI-CD-status-changed — объекты присутствуют в обеих компаниях. Они были отредактированы в компании, с которой совершается обмен, и обновятся в целевой конфигурации. Например, в тестовой среде внесены изменения в настройки форм приложений, отредактированные объекты необходимо перенести в эксплуатационную компанию;
  • low-code-CI-CD-status-missing — компоненты присутствуют в целевой конфигурации, но не найдены в структуре входящих изменений. После выполнения обмена объекты целевой конфигурации, отмеченные этим статусом, не изменятся;
  • low-code-CI-CD-few-statuses — в отмеченных компонентах найдено несколько различий. Например, в тестовом окружении в решении удалили раздел и добавили новый, а в эксплуатационной компании присутствует предыдущая версия решения.    

Чтобы просмотреть изменения в коде входящих скриптов, нажмите на значок рядом с его названием. В открывшемся окне сравнения вы увидите код из текущей и внешней конфигураций. Навигация по изменениям и количество добавленных или удаленных строк отображены на верхней панели. Для полноэкранного режима нажмите значок в правом верхнем углу.

low-code-CI-CD-5

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

Проверить выполнение профиля обмена

После создания профиля обмена вы можете проверить выполнение указанной в нём операции. Для этого на странице Непрерывная выкладка (Low-code CI / CD) откройте вкладку Профили. Напротив созданного профиля обмена нажмите значок ci-cd-check-profile-icon и подтвердите действие.

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

В результате проверки выявляются ошибки, препятствующие выполнению операции. Например, в экспортируемых или импортируемых компонентах могут присутствовать ссылки или зависимости от объектов, которые не включены в профиль обмена.

Подробнее о процессе проверки на примере операции загрузки и выгрузки решения читайте в статьях «Импорт решения из файла .e365» и «Экспорт решения из файла .e365».    

Текущее состояние и результат проверки отображается в списке профилей обмена в столбце Статус. Нажав на статус по окончании проверки, вы сможете просмотреть отчёт с её результатом. Если при проверки выявлены ошибки, выполнить профиль обмена будет невозможно.

low-code-CI-CD-6

Запустить обмен компонентами

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

low-code-ci-cd-7

Чтобы посмотреть историю выполнения операции обмена, нажмите на статус профиля в таблице. В открывшемся окне отображаются данные по последнему произведённому обмену. Если обмен завершился с ошибкой, вы можете развернуть список компонентов и посмотреть подробную информацию, как при проверке профиля обмена.

Настроить канал уведомлений

Ошибки, возникшие при выполнении экспорта или импорта компонентов, можно отображать в ленте сообщений в отдельном канале. Чтобы настроить уведомления:

  1. Перейдите в раздел Сообщения, создайте канал и настройте права доступа для его участников.
  2. Откройте раздел Администрирование > Инструменты разработчика > Непрерывная выкладка (Low-code CI / CD) и перейдите на вкладку Уведомления.
  3. В поле Канал для уведомлений выберите созданный канал.

low-code-ci-cd-8

  1. Для применения настроек нажмите на появившуюся на странице кнопку Сохранить.