drupalspoons/composer-plugin

此软件包已被废弃且不再维护。未建议替代包。

用于准备 Drupal 项目以进行 CI 和/或本地测试的 Composer 插件。

安装数: 13,605

依赖项: 0

建议者: 0

安全: 0

星标: 4

分支: 8

类型:composer-plugin

2.10.16 2022-11-28 18:52 UTC

README

此项目需要一个新名称和新的家园(理想情况下由 Drupal 协会管理)。此插件有两个目标

  • CI 模板。提供一个金光大道(参见 Spotify 对此术语的定义),供 Drupal 贡献项目使用 Gitlab CI。
  • 本地开发。标准化脚本和匹配的代码库构建,用于本地 Drupal 开发。

这两个目标共同确保本地环境中运行的测试与 Gitlab CI 平台上的结果相同(在很大程度上)。

CI

  • 在项目根目录下添加 .gitlab-ci.yml一个好的起点是 KeyCDN。提交并推送文件。推送后应启动管道。点击 Gitlab 的 CI/CD 链接查看它们。
  • 可选
    • 添加一个 phpcs.xml 文件来自定义如何使用 phpcs 检查您的源代码。
    • 如果您想测试 memcache、elasticsearch、redis 等,您可以在 .gitlab-ci.yml 文件中添加服务。
    • 要禁用作业,请参阅下表中的 DCI_SKIP 环境变量。
    • 如果您需要更改其他包(例如),请按常规在 composer.json 中添加补丁。
    • (仅限维护者)。转到 CI/CD => 计划并添加任何重要的构建排列到 每周 计划中。例如排列可以是非默认的 Drupal 核心版本、DB 后端等。例如,请参阅 KeyCDN 的计划。请参阅下面的 环境变量

环境变量

使用您的管道列表上的 运行管道 按钮测试任何分支与 Drupal 核心版本、PHP 版本或 DB 驱动程序的替代版本。可识别的变量和默认值如下

名称默认值备注
DRUPAL_CORE_CONSTRAINT^9
PHP_TAG7.4
DCI_SKIP_COMPOSER0设置为 1 以跳过作业
DCI_SKIP_VALIDATE0设置为 1 以跳过作业
DCI_SKIP_PHPCS0设置为 1 以跳过作业
DCI_SKIP_STYLELINT0设置为 1 以跳过作业
DCI_SKIP_ESLINT0设置为 1 以跳过作业
DCI_SKIP_PHPUNIT0设置为 1 以跳过作业
DCI_PHPUNIT_EXTRA示例:--group=devel_generate
DB_DRIVERmysql允许:mysqlsqlitepgsql
MARIADB_TAG10.3
POSTGRES_TAG0
COMPOSER_PLUGIN_CONSTRAINT^2用于测试 composer-plugin MR
COMPOSER_PLUGIN_PREPAREtrue用于跳过代码库符号链接步骤
WEB_ROOTweb

本地开发

  • 通过 git 克隆贡献项目
  • 安装此插件(语法取决于您的 shell)
    • BASH 或 ZSH: bash <(curl -s https://gitlab.com/drupalspoons/composer-plugin/-/raw/master/bin/setup)
    • FISH: bash (curl -s https://gitlab.com/drupalspoons/composer-plugin/-/raw/master/bin/setup | psub)
  • 配置一个 Web 服务器以将 /web 目录作为 docroot。以下任一均可
    • composer webserver
    • 设置 Apache/Nginx/其他。虚拟主机效果良好。任何域名都行。
  • 配置数据库服务器并创建数据库。通过定义 SIMPLETEST_DB 环境变量来完成此操作(例如 SIMPLETEST_DB=mysql://admin:admin@127.0.0.1/dbname
  • 安装 Drupal composer si -- --db-url=mysql://user:pass@localhost/db。根据需要调整。
  • 运行测试 composer unit
  • 通过环境变量和参数/选项自定义这些作曲家脚本。请参阅上面的表格。

此插件与任何Docker本地开发平台兼容,如DDEVLando等。此外,此插件不假设Docker,因此原生环境也很好。在原生环境中设置环境变量的方便方法是使用Direnv(并查看写入到项目根目录的.envrc文件)。或者,将所有Composer命令前缀为spoon,如spoon updatespoon drush core:status

处理项目更改

  • 如果项目的composer.json发生更改,或者从项目根目录添加/删除了文件:composer drupalspoons:rebuild
  • 如果有新的或更新的依赖项可用:composer update

更多示例命令

  • 运行所有测试 - composer unit
  • 运行一个测试套件:composer unit -- --testsuite functional
  • 跳过慢速测试:composer unit -- --exclude-group slow
  • 使用不同的URL:SIMPLETEST_BASE_URL=http://example.com composer unit

此插件的工作方式

  • 此插件写入一个包含指定Drupal核心版本的composer.spoons.json文件。
  • 插件假设在运行composer命令时,composer.spoons.json文件正在生效。这是通过CI自动完成的。对于本地开发,必须设置COMPOSER=composer.spoons.json环境变量。您可以手动完成此操作,或通过DirenvDockerspoon
  • 此插件通过类似于以下方式的符号链接组装代码库:

Folder tree

贡献

欢迎对此项目做出贡献!请提交问题和合并请求。

  • 所有合并请求都通过GitLab CI自动测试。维护者必须手动触发管道(由于下游项目的权限)。
  • cache_metrics项目(任何项目都适用)中触发一个下游管道,并将通过/失败状态传播回此项目。