Skip to content

CI/CD integration

DXPR Builder content is stored in Drupal text fields and configuration entities. This page explains how to include DXPR Builder content in your CI/CD pipeline and deployment workflows.

Content storage

DXPR Builder stores its data in the database and in configuration:

Data type Storage Deployment method
Page content Text field values (database) Content sync or migration
Page templates Config entities Config export/import
User templates Config entities Config export/import
Settings Config; holds the product key under Configuration storage Config export/import once the key is in a Key entity; see below
User profiles Config entities Config export/import
Product key Settings, or a Key entity holding or pointing to the key Per environment; see below

Configuration management

DXPR Builder settings and templates are Drupal configuration. Deploy them with standard Drupal configuration management.

Export

drush config:export

This exports these DXPR Builder config files:

  • dxpr_builder.settings.yml
  • dxpr_builder.dxpr_builder_profile.*.yml
  • dxpr_builder.page_template.*.yml
  • dxpr_builder.user_template.*.yml
  • key.key.dxpr_builder_jwt.yml, or the Key entity selected for the product key

Do not commit dxpr_builder.settings.yml while the product key is in it; see Product keys below.

Import

drush config:import

CI pipeline example

drush deploy runs the database updates, imports configuration and rebuilds caches in the right order. DXPR Builder releases convert content in their database updates, so run them on every deploy.

deploy:
  script:
    - drush deploy -y

Content deployment

Page content (the HTML in text fields) is database content, not configuration. Options for deploying content between environments:

Default Content module

Export content as YAML files and import them on the target environment.

Content Synchronization

Use the Content Synchronization module (content_sync) to export and import content entities.

Database synchronisation

Copy the database from one environment to another:

drush sql:sync @source @target

Environment-specific considerations

File paths

DXPR Builder content references uploaded images by file path. Sync the files directory between environments.

Product keys

Each environment needs a valid product key. Under the default Configuration storage, dxpr_builder.settings.yml holds that key in clear text, as json_web_token. Before the file goes into your repository:

  1. Create a Key whose provider reads an environment variable or a file, at Configuration > System > Keys (/admin/config/system/keys).
  2. At DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings), set Storage method to Key module, choose that key under Key and click Save settings. This clears json_web_token.
  3. Export the configuration again and check that dxpr_builder.settings.yml no longer contains the key.

A Key with the Configuration provider stores the value in its own exported file, so it is not safe to commit either.

What's next?

Content staging between environments to continue exploring DXPR Builder.

Something wrong or missing on this page? Report it or edit the page.