CI/CD 集成.

Learn DXPR BuilderManage the siteNaar productie

DXPR Builder 的内容存放在 Drupal 文本字段和配置实体中。本页介绍如何在 CI/CD 流水线和部署流程中纳入 DXPR Builder 内容。

内容存储

DXPR Builder 将数据存放在数据库和配置中:

数据类型 存储位置 部署方法
页面内容 文本字段值(数据库) 内容同步或迁移
页面模板 配置实体 配置导出/导入
用户模板 配置实体 配置导出/导入
设置 配置;产品密钥存放在 Configuration storage 将密钥放入 Key 实体后再配置导出/导入;见下文
用户档案 配置实体 配置导出/导入
产品密钥 设置,或保存密钥(或指向密钥)的 Key 实体 按环境处理;见下文

配置管理

DXPR Builder 的设置和模板属于 Drupal 配置。请用标准的 Drupal 配置管理来部署它们。

导出

drush config:export

这会导出以下 DXPR Builder 配置文件:

  • 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,或为产品密钥选择的 Key 实体

当产品密钥还在文件中时,不要提交 dxpr_builder.settings.yml;请参阅下文 产品密钥。

导入

drush config:import

CI 流水线示例

drush deploy 按正确顺序运行数据库更新、导入配置并重建缓存。DXPR Builder 的发行版会在数据库更新中转换内容,因此每次部署都要运行它们。

deploy:
  script:
    - drush deploy -y

内容部署

页面内容(文本字段中的 HTML)是数据库内容,不是配置。在环境之间部署内容的方法:

Default Content 模块

将内容导出为 YAML 文件,再导入目标环境。

Content Synchronization

使用 Content Synchronization 模块(content_sync)导出和导入内容实体。

数据库同步

将数据库从一个环境复制到另一个环境:

drush sql:sync @source @target

各环境注意事项

文件路径

DXPR Builder 的内容按文件路径引用上传的图片。请在环境之间同步文件目录。

产品密钥

每个环境都需要有效的产品密钥。在默认的 Configuration storage 下,dxpr_builder.settings.yml 以明文保存该密钥,即 json_web_token。在文件进入代码库之前:

  1. 在 Configuration > System > Keys (/admin/config/system/keys) 创建一个 Key,其提供方读取环境变量或文件。
  2. 在 DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) 将 Storage method 设为 Key module,在 Key 下选择该键并点击 Save settings。这会清除 json_web_token。
  3. 重新导出配置,检查 dxpr_builder.settings.yml 不再包含密钥。

使用 Configuration 提供方的 Key 将值存放在自己导出的文件中,因此也不能提交。

接下来做什么?

在环境之间暂存内容,继续探索 DXPR Builder。