happyculture / combawa
项目构建者
Requires
- drush/drush: ^12 || ^13
- symfony/dotenv: ^6.3
Suggests
- happyculture/combawa-wrapper: Lets you run combawa from anywhere without naming explicitely vendor/bin/combawa.sh.
Conflicts
- drush/drush: <11.0
- 10.x-dev
- 10.0.2
- 10.0.1
- 10.0.0
- 9.x-dev
- 9.1.2
- 9.1.1
- 9.1.0
- 9.0.3
- 9.0.2
- 9.0.1
- 9.0.0
- 9.0.0-rc7
- 9.0.0-rc6
- 9.0.0-rc5
- 9.0.0-rc4
- 9.0.0-rc3
- 9.0.0-rc2
- 9.0.0-rc1
- 9.0.0-beta3
- 9.0.0-beta2
- 9.0.0-beta1
- 9.0.0-alpha16
- 9.0.0-alpha15
- 9.0.0-alpha14
- 9.0.0-alpha13
- 9.0.0-alpha12
- 9.0.0-alpha11
- 9.0.0-alpha10
- 9.0.0-alpha9
- 9.0.0-alpha8
- 9.0.0-alpha7
- 9.0.0-alpha6
- 9.0.0-alpha5
- 9.0.0-alpha4
- 9.0.0-alpha3
- 9.0.0-alpha2
- 9.0.0-alpha1
- 8.x-dev
- 8.6.3
- 8.6.2
- 8.6.1
- 8.6.0
- 8.5.4
- 8.5.3
- 8.5.2
- 8.5.1
- 8.5.0
- 8.4.2
- 8.4.1
- 8.4.0
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.2.0
- 8.1.7
- 8.1.6
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- 8.0.10
- 8.0.9
- 8.0.8
- 8.0.7
- 8.0.6
- 8.0.5
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 7.x-dev
- 7.0.6
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
This package is auto-updated.
Last update: 2024-09-05 14:02:46 UTC
README
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.sh
或postdeploy_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
来这样做。
请注意,如果您处于install
或update
模式,.env
文件的内容将不同。这意味着当您从install
切换到update
时,应重新触发命令以填写额外的所需信息(主要是指数据库备份)。
脚本模板生成器
命令 drush combawa:initialize-build-scripts
此命令生成Combawa用于从模板安装/更新项目的构建脚本。一旦生成这些文件,您可以根据需要对其进行自定义,并且可能希望对其进行版本控制。
高级用法
从生产环境拉取更改
如果您的某些用户能够在生产环境中更改配置,在发布新功能之前,您可能希望确保您的仓库是最新的。由于这些设置存储在数据库中,您需要在本地环境中检索它们,然后将其配置导出到您的仓库。
运行combawa以仅用生产数据库备份替换您的本地数据库,如下所示
combawa -f 1 -r 1 --stop-after-reimport
现在数据库已经导入。运行drush config:export -y
以将其导出到代码并从生产环境中版本控制配置差异。
故障排除
显然,这个版本没有bug!如果您发现了一个问题,请打开一个问题。