happyculture/combawa

此包最新版本(10.0.2)没有可用的许可信息。

项目构建者


README

Logo Combawa

Combawa

Combawa 是一个 bash 脚本,帮助您构建 Drupal 项目。

它兼容 Drupal 10,旨在供开发人员和 CI 应用程序使用。(请参阅其他分支以获取较低版本的 Drupal)。

您被鼓励将 Combawa 作为日常伴侣使用,以重新安装或更新本地安装或 CI 环境。

由于 Combawa 非常酷,您可以使用 Drush 命令设置所需的环境变量。详细信息请见下文。

安装

  • composer require happyculture/combawa
  • 使用 drush combawa:initialize-build-scripts 从模板启动项目构建文件(在 Drupal 网站安装或更新时运行的操作)。
  • 如果您使用不同于 minimal 的安装配置文件在 install 模式下,则应更新 scripts/combawa/install.sh 文件,以替换 $DRUSH site-install 命令中的配置文件名。
  • 使用 drush combawa:generate-environment 设置您的环境(配置您的站点变量)。

如果您不想使用生成的 settings.local.php 文件,您必须在您的 settings.php(或任何其他设置文件)中添加以下片段

<?php

// Environment variables are defined in the .env file at the project root.
$databases['default']['default'] = [
  'host' => $_ENV['COMBAWA_DB_HOSTNAME'],
  'port' => $_ENV['COMBAWA_DB_PORT'],
  'database' => $_ENV['COMBAWA_DB_DATABASE'],
  'password' => $_ENV['COMBAWA_DB_PASSWORD'],
  'username' => $_ENV['COMBAWA_DB_USER'],
  'prefix' => '',
  'driver' => 'mysql',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
];

推荐

Combawa 包装器作为全局命令

如果您像我们一样懒惰(您应该),则可以使用全局命令 combawa 而不是 vendor/bin/combawa 在您的项目中。
为此,您需要安装 Combawa 包装器(https://github.com/Happyculture/combawa-wrapper)。它的工作方式类似于 Drush 包装器。

composer global require happyculture/combawa-wrapper

用法

构思 & 哲学

(重)使用 Combawa 构建项目

Combawa 是一个脚本,当您想要测试您刚制作的功能时,它将简化项目的重新安装。

它针对本地站点的 CI 环境进行了设计。当您开始使用 Combawa 时,您将启动一个构建场景(我们建议生产场景)以设置内部选项的默认值(在构建之前应该备份网站吗?从生产中检索一个新的参考转储...)您可以直接从安装配置文件、现有配置或直接从您的生产服务器检索的参考转储中构建项目。

如何使用 Combawa

运行 Combawa 以(重)构建您的项目主要涉及运行此命令:./vendor/bin/combawa

当您构建网站时,将遵循以下步骤

  • 预检查(系统要求+设置验证)
  • 预部署操作(获取远程数据库,保存当前安装的备份,删除数据库)
  • 构建操作(安装或更新模式(以下有区别))
  • 后部署(重建缓存,生成连接链接,设置特定环境模块,重新索引...)

运行Combawa时没有额外参数,它将采用默认设置。您可以在运行时覆盖这些设置(请参阅下面的参数部分)。

环境特定

Combawa被设计为根据特定环境的规则集构建您的网站。

换句话说,您有一个解决方案来在prod环境中编译CSS文件而不是在dev环境中,每次重建时删除数据库(但在prod环境中不删除),在开发中启用/禁用特定模块(Devel、Views UI...)或在生产中(没有DBLog或UI...)

有效的环境(选项-e)如下

  • 开发(dev)
  • 测试(testing)
  • 生产(prod)

当您针对特定环境时,您可以编辑predeploy_actions.shpostdeploy_actions.sh。每个文件都包含每个环境的switch/case,但您可以针对每个项目专门化这些文件。

构建模式

当您构建项目时,您处于两种不同的场景

  • 安装模式:您正在初始化项目并从安装配置文件构建。
  • 更新模式:您已进入项目生命周期的后期,并且它可能已在生产中。您想要从您导出的配置或参考SQL转储重新构建。

每种模式(选项-m)都使用不同的构建文件,因为您在安装或更新时不会运行相同的命令。

Combawa为每种模式提供模板文件,当您需要根据约束调整它们时,可以更新它们。

Combawa选项

您可以使用更多参数,例如:./vendor/bin/combawa.sh --env dev --mode install --backup 1 --fetch-db-dump

以下是可用参数的列表

  • --yes-y:在运行构建之前不请求确认。对于CI集成非常有用。
  • --env-e:要构建的环境。允许的值是:dev、testing、prod
  • --mode-m:构建模式。允许的值是:install、update
  • --backup-b:在构建项目之前生成备份。允许的值是:0:不生成备份,1:生成备份。
  • --reimport-r:从参考转储(数据库删除和替换)重新导入站点。允许的值是:0:不重新导入参考数据库,1:重新导入参考数据库。
  • --fetch-db-dump-f:从生产站点获取最新的数据库转储。当参考转储应该更新时使用。
  • --only-predeploy:仅执行预部署脚本。
  • --only-postdeploy:仅执行后部署脚本。
  • --no-predeploy:不执行预部署脚本。
  • --no-postdeploy:不执行后部署脚本。
  • --stop-after-reimport:在重新导入数据库后停止构建的标志。对于从prod版本配置非常有用。

环境文件

您可以生成或手动创建环境文件,以注入Combawa所需的变量和额外的环境信息。期望.env文件位于仓库根级别。

我们利用Symfony Dotenv组件,因此如果已定义,则.env文件可能被.env.local.env.$APP_ENV.local.env.$APP_ENV覆盖。

Drush命令

环境生成器

命令drush combawa:generate-environment

每次针对一个环境使用一次此命令,它将创建两个文件

  • .env:存储构建脚本的本地值。
  • settings.local.php:用于将本地值注入到Drupal中。

默认情况下,该命令是交互式的。如果您想通过CLI使用它,可以传递所有参数及其值。如果缺少必需的值,则命令将提示收集缺少的值。例如

 ./vendor/bin/drush combawa:generate-environment \
  --build-mode update \
  --environment dev \
  --environment-url https://mydevsite.coop \
  --backup-db \
  --dump-fetch-update \
  --dump-retrieval-tool scp \
  --scp-connection-username=username \
  --scp-connection-servername myserver.org \
  --scp-connection-port 22 \
  --fetch-source-path /home/dumps-source/my_dump.sql.gz \
  --db-host localhost \
  --db-port 3306 \
  --db-name test_db \
  --db-user db_username \
  --no-interaction

使用drush combawa:generate-environment --help查看参数值的集成帮助。

请注意,如果已存在,则命令将不会生成settings.local.php以避免数据丢失。如果您有任何有效的原因需要覆盖现有文件(例如,在持续集成环境中),可以通过传递额外参数--force-settings-generation来这样做。

请注意,如果您处于installupdate模式,.env文件的内容将不同。这意味着当您从install切换到update时,应重新触发命令以填写额外的所需信息(主要是指数据库备份)。

脚本模板生成器

命令 drush combawa:initialize-build-scripts

此命令生成Combawa用于从模板安装/更新项目的构建脚本。一旦生成这些文件,您可以根据需要对其进行自定义,并且可能希望对其进行版本控制。

高级用法

从生产环境拉取更改

如果您的某些用户能够在生产环境中更改配置,在发布新功能之前,您可能希望确保您的仓库是最新的。由于这些设置存储在数据库中,您需要在本地环境中检索它们,然后将其配置导出到您的仓库。

运行combawa以仅用生产数据库备份替换您的本地数据库,如下所示
combawa -f 1 -r 1 --stop-after-reimport

现在数据库已经导入。运行drush config:export -y以将其导出到代码并从生产环境中版本控制配置差异。

故障排除

显然,这个版本没有bug!如果您发现了一个问题,请打开一个问题。