System settings > Developer tools / Low-code CI/CD

Low-code CI/CD

Continuous integration (CI) and Continuous delivery and deploy (CD) is an approach to developing complex custom solutions using the Develop > Test > Production cycle.

With this method of development, the solution goes through three stages: it is created, tested, and put into production. A separate company is assigned for each stage. It is registered in its environment:

  • Dev company. For the development stage.
  • Test company. For testing the developed solution.
  • Prod company. For production by end users.

The solution moves to the next stage by exporting to a company in another environment.

For this purpose, the ELMA365 interface provides a universal tool for exchange between companiesѕLow-code CI/CD. It is used to bind companies from the same or different environments. The exchange operation is then customized.

Low-code CI/CD allows you to develop custom solutions in short iterations, maintain their versioning and integrity, and work with them simultaneously across three environments.

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

Low-code CI / CD is available in ELMA365 On-Premises. It will become available in SaaS возможностьafter release 2024.2.

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

Terminology

The following terms are used in the article:

  • Company. Registered and licensed ELMA365 platform in one of the editions: Saas, On-Premises;
  • Environment. A company that is registered separately for a certain stage of work with the solution: development, testing, or production (dev, test, prod). To register and license companies in dev and test environments, please contact your ELMA365 sales rep;
  • Configuration. A structure that includes: installed and custom solutions, workspaces, modules and their contents, business processes, groups, widgets, document templates, and other entities created at the company level, organizational chart, and document categorization;
  • Current configuration. The company in which the communication and exchange operation is configured;
  • External configuration. The company with which the configuration components are exchanged;
  • Binding. A link created between two companies to exchange components of the current and external configurations. Linked companies can be registered in the same or different environments;  
  • Exchange Profile. An operation that defines the export or import process between bound companies. The profile specifies the components to be exchanged, which can include workspaces, modules, solutions or the entire configuration. It allows you to compare the current and external configurations and view the results of the exchange. The profile can be used multiple times to perform exchange operations.

Configure Low-code CI / CD

The Low-code CI/CD page is available to system administrators in Administration > Developer Tools workspace.

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

You can use the Low-code CI/CD tool if the current and external companies are updated to version 24.1 or higher.

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

The page includes three tabs: Bindings, Profiles, and Notifications. On these, the configuration and operation of Low-code CI/CD is as follows:

  1. A binding is established between the two companies to perform the exchange of current or external configuration.
  2. An exchange profile is created, in which the operation to be performed- export or import - is specified, exchange objects are selected and conditions for resolving possible conflicts are set.
  3. The components of two configurations selected in the exchange profile are compared, the differences are identified and the result of the exchange operation is analyzed.
  4. The exchange operation is performed according to the specified profile.
  5. Optionally, a channel for notification of unsuccessful exchange operations is configured.  

Establish binding between two companies

To implement continuous integration (CI) and continuous delivery and deploy (CD) in ELMA365, the exchange of components between two companies in different environments is configured. For this purpose, the current company is linked to the external company by creating a binding.

It is recommended to link companies in different environments in the following pairs: development/test (dev/test) and test/production (test/prod).

In each pair, the first company (e.g. dev) is the current configuration in which the binding is created. The second company (e.g., test) acts as the external configuration with which the binding is exchanged. This will allow solution versions to be moved sequentially between companies, from dev environment to test, and then from test company to prod.

An unlimited number of bindings can be created in the current company with different companies registered in any environment.

Registration and licensing of companies in dev and test environments are done through the ELMA365 rep.

To bind one company to another, follow the steps below:

  1. Go to the ELMA365 that you want to bind, for example, a test company. Open the Administration > Tokens workspace and create a token for the binding.
  2. Open ELMA365 where you want to create a binding, for example, a dev company for development. Go to Administration > Developer Tools workspace and select the Low-code CI/CD page.
  3. In the Bindings tab, click + New and in the opened window, fill in the fields:

cicd01

  • Name*.  Specify the name of the binding to be displayed in the list, for example, Test Environment;
  • URL*. Specify the URL of the external company’s home page;
  • Token*. Copy the token created in the external company in step 1 and paste it into the field.  
  1. Save the settings.

All bound external companies are displayed on the Binding tab. Configurations or their components can be exchanged with each of them. To change the binding data, click on an entry in the list.

Create exchange profile

After binding the external configuration to the company, you can exchange components. For this purpose, an exchange profile is created.

The profile specifies with which external configuration the exchange is performed and defines the type of operation (export or import data). Then the objects to be exchanged are marked, you can select all objects included in the configuration or its individual components. The profile also defines the strategy of conflict resolution in the exchange process.

You can add an unlimited number of exchange profiles, for example, for each custom solution developed in the dev company. The created profile can be exchanged many times.

For example, several custom solutions have been developed in the dev environment. You can export them to another company to test the functionality. To do this, create an exchange profile in the test company, include all solutions from the dev environment in it and run the export operation. When new versions of solutions are developed in the dev company, you can transfer them to the test environment by running the same exchange profile.

To create an exchange profile:

  1. Go to Administration > Developer Tools > Low-code CI/CD and open the Profiles tab.
  2. In the upper right corner of the page, click +Create and fill in the details of the exchange:

cicd02

  • Name*. Specify the name of the exchange to be displayed in the list of profiles;
  • Binding*.  Select the external configuration, i.e. the binding created on the Low-code CI / CD page on the Binding tab;
  • Direction*.  Specify the operation for the exchange profile:
    • Import . Components of the external configuration are loaded into the current company;
    • Export . Components of the current configuration are transferred to the bound external company.
  • Strategy*.  Select a way to resolve conflicts that may arise during the exchange operation. Conflicts can occur if incompatibilities are detected between components of the current and external configurations, for example, the exchange is not performed consistently between component versions or the transferred objects have been changed in both companies. If a conflict is detected in at least one component during the exchange, the operation is performed according to the specified strategy:
    • Replace objects.  If conflicts occur, the existing components of the target configuration will be completely replaced by the imported objects. This exchange strategy can lead to incorrect operation of the target configuration components. For example, if scripts use app properties that will be deleted as a result of the exchange, such a script will not be executed;
    • Keep objects.  If conflicting components are found during the exchange, the version of the target configuration is saved and the exchange operation is canceled, i.e. it terminates with an error. For example, different properties are added to the context of one app in the test and operational configurations. A conflict will occur during component exchange and import will not be possible.    
  • Configuration elements.  Click Select. Depending on the specified operation, the configuration structure will open: when importing, it shows the composition of the external system, when exporting, it shows the elements of the current company. Select the check box for the components that will be migrated to the other configuration and click Apply.
    • Org Chart*.  If you choose to exchange the entire configuration in the profile, additionally specify the need to transfer the org chart.

Please note, that only components for which export is available can be migrated. For example, if a paid business solution from the ELMA365 Store is activated in the operational ELMA365, it cannot be selected for export to the test environment.

The process of sharing related solutions in Low-code CI/CD does not need to create dependencies between them, unlike the process of exporting such solutions to separate .e365 files and then importing the files to another company. If the solutions work together, they are exported in the same exchange profile. Once the operation is complete, all relationships in the objects will be preserved.

  1. Save the configured exchange profile.

All created exchange profiles are displayed on the Low-code CI/CD page on the Profiles tab. To remove a profile from the list, check the box next to its name and click Delete that appears in the upper right corner of the page.

Compare components of configurations from the exchange profile

Before performing an exchange operation, you can compare the status of the objects selected in the profile for the current and external configurations. Incoming changes will be displayed with statuses, with the help of which you can analyze the result of the exchange operation.

To do this, on the Low-code CI/CD page, open the Profiles tab and click Compare against the created exchange profile. In the opened window, the structures of the two configurations will be formed, which will include only those objects that are added to the selected profile:

  • Target configuration. It is the configuration structure that will be changed when the exchange profile is executed. For example, during an import operation, the target will be the current company, and during an export operation, the target will be an external configuration.
  • Changes to the target. They are components from the configuration that will be transferred to the target company.

cicd03

In the incoming changes column, the differences between the two configurations are marked with color designations that correspond to the statuses:

clip0194These are created components that will be added to the target configuration when the exchange is executed. For example, a new solution from the test environment will be loaded into the production ELMA365;

clip0195 Objects are present in both companies. They have been edited in the exchange company and will be updated in the target configuration. For example, if changes are made to the app form settings in the test environment, the edited objects must be moved to the production company;

clip0196 Components are present in the target configuration but are not found in the incoming change structure. After the exchange is executed, the target configuration objects marked with this status will not change;

clip0197 Several differences were found in the selected components. For example, in the test environment, a section in the solution has been removed and a new one added, while in the operating company, the previous version of the solution is present.    

The comparison window provides a search by component name. The comparison result can be filtered by a specific status, and you can display the entire structure or only the components in which differences are found.

To view detailed information about the differences, expand the configuration structure.

Start component exchange

To do this, on the Profiles tab, click Execute against the required entry and confirm the action. After the transfer is completed, the operation status will be displayed in the list of profiles.

cicd04

To view the history of the exchange operation, click on the profile status in the table. The opened window displays data on the last exchange performed. If the exchange ended with an error, you can expand the list of components and view detailed information.

cicd05

Configure notification channel

You can display errors that occurred while performing component exports or imports in the message stream in a separate channel. To set up the notifications:

  1. Go to the Messages workspace, create a channel, and configure access rights for its members.
  2. Open Administration > Developer Tools > Low-code CI/CD and click the Notifications tab.
  3. In the Channel for notifications field, select the created channel.

cicd06

  1. Click on the Save button that appears on the page to apply the settings.

Found a typo? Highlight the text, press ctrl + enter and notify us