使用 Drupal 8 实现 CI 的最佳方式

Best way to implement CI with Drupal 8

我们有一个使用 Drupal 8 构建的本地开发站点设置,我们希望有一种方法可以在它们之间同步数据。有些开发人员对 CMS 不是很熟悉,他们在前端工作,所以我们不想让他们手动移动数据。我们正在寻找在我们的实例之间自动同步内容和配置的最佳方式。到目前为止,我们使用的文件系统 git,但对于数据库,我们还没有找到合适的解决方案。你建议我们在这里做什么?当我们将我们的网站移动到登台和生产环境时,我们也将使用类似的设置。我们为 git 设置了 Jenkins 和一些书籍,因此也可以使用 运行 bash 命令。

我想这可能会引起一些不同的意见。由于没有"best way"。这始终取决于您的设置、您的具体要求和您:)

就是说,我喜欢 CI D8 和 CircleCI。我已经发布了一个简单的示例存储库,可以帮助您启动自己的设置。

https://github.com/leymannx/drupal-circleci-behat

你推送到一个分支。 CircleCI 将在 docker 容器中构建站点,运行 测试,当所有测试都是绿色时,它将通过 SSH 连接到实时或开发服务器并启动部署脚本(git pull, composer install, drush updb, ...).

而且我倾向于始终将以下 Composer 模板用于 Drupal 8 项目。因为它为这样的东西提供了一个良好的生态系统:

https://github.com/drupal-composer/drupal-project