CI/CD 集成.
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.ymldxpr_builder.dxpr_builder_profile.*.ymldxpr_builder.page_template.*.ymldxpr_builder.user_template.*.ymlkey.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。在文件进入代码库之前:
- 在 Configuration > System > Keys
(
/admin/config/system/keys) 创建一个 Key,其提供方读取环境变量或文件。 - 在 DXPR Studio > DXPR Builder > General Settings
(
/admin/dxpr_studio/dxpr_builder/settings) 将 Storage method 设为 Key module,在 Key 下选择该键并点击 Save settings。这会清除json_web_token。 - 重新导出配置,检查
dxpr_builder.settings.yml不再包含密钥。
使用 Configuration 提供方的 Key 将值存放在自己导出的文件中,因此也不能提交。
接下来做什么?
在环境之间暂存内容,继续探索 DXPR Builder。