chromatic/usher

用于Chromatic项目的Robo命令集合。

v4.0.3 2024-08-12 22:03 UTC

README

Usher旨在用于Chromatic仓库,以补充Robo PHP任务运行器的使用。它包含许多用于开发、构建和部署的命令,并可以在下游仓库中扩展。

  • ush·er (动词):引导(某人)到某个地方。
  • ush·er (名词):美国歌手、词曲作者、企业家和舞者。

Usher in a tuxedo

兼容性

安装

composer require chromatic/usher

配置

  • 在代码库根目录中创建一个robo.yml文件。为Drupal项目提供了一个起始点:robo.drupal.example.yml
  • 在代码库根目录中创建一个.sites.config.yml文件。有关配置信息,请参阅.sites.config.example.yml
  • 将以下内容添加到您的repo的composer.json "scripts"部分,以便可以使用composer robo轻松调用robo:
    "scripts": {
      "robo": "robo --ansi"
    }
  • 如果您正在覆盖任何命令,请将以下内容添加到您的repo的composer.json文件中。请确保用YOURPREFIX替换您自己的命名空间前缀。
    "autoload": {
    "psr-4": {
        "YOURPREFIXRobo\\": "robo/src"
      }
    }
    然后将命令放置在robo/src/Robo/Plugin/Commands中,使用YOURPREFIXRobo\Robo\Plugin\Commands命名空间。
  • 如果您正在使用任何使用GitHubStatusTrait来设置pull请求状态检查的命令,必须在GitHub中创建一个个人访问令牌。
    1. 在GitHub中创建一个个人访问令牌
    2. 创建一个名为GITHUB_ACCESS_TOKEN的环境变量,其值为将在其中运行检查的环境中的令牌值。

命令

robo dev:refresh

在下游仓库中通常可用作composer robo dev:refresh -- SITENAMEdev:refresh命令,刷新您的本地开发环境(DDEV),包括

  1. composer install
  2. 主题构建(robo theme:build)。
  3. 禁用前端缓存。
  4. 下载最新的数据库备份。
  5. 导入数据库备份。
  6. drush deploy
  7. 生成Drupal登录链接。

robo deploy:drupal

在下游仓库中通常可用作composer robo deploy:drupal SITENAME DOCROOTdeploy:drupal命令,以标准化的方式部署Drupal,包括

  1. drush deploy
  2. drush config:import

robo drupal:status-report

在下游仓库中通常可用作composer robo drupal:status-reportdrupal:status-report命令,检查Drupal的状态报告,并报告警告和错误。可以通过将警告/错误ID添加到下游仓库的robo.yml配置文件中的drupal_status_report_ignore_checks键来忽略特定的警告或错误。例如

drupal_status_report_ignore_checks:
  - update_core

要识别相关的ID,请运行drush status-report --format=yaml。输出将包括ID。

robo config:update-php-version

使用config:update-php-version命令更新项目在robo.ymlphp_version_config_paths键中列出的文件中配置的PHP版本。

php_current_version: '8.1'
php_version_config_paths:
  - composer.json
  - .tugboat/config.yml
  - .platform.app.yaml

Slack通知选项

如果您希望Usher向Slack发送通知,您需要在您的工区中创建一个Slack应用,然后在您希望发送通知的频道中添加一个“入站Webhook”。创建Webhook时,Slack会为您提供该频道的唯一URL。然后您必须将环境变量SLACK_WEBHOOK_URL设置为Usher运行环境中的Slack Webhook URL。

示例Webhook URL:https://hooks.slack.com/services/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

  • notify-slack - 默认为false。如果为true,则Tugboat构建失败时会发送Slack通知。
  • notify-slack-force - 默认为false。如果为true,它将强制尝试通知Slack有关构建情况,无论发生了什么。

扩展

您可以使用此包进行基本操作,然后在此基础上进行构建。仅适用于单个存储库的新命令应添加到项目存储库的顶级/robo目录中。命令应位于/robo/src/Robo/Plugin/Commands/。在composer.json中添加一个新的autoload命名空间,以便检测这些命令。

"autoload": {
    "psr-4": {
        "YOURPREFIXRobo\\": "robo/src"
    }
}

贡献

如果您有一个对使用此包的多个存储库都很有用的新命令,请通过pull request在/src/Robo/Plugin/Commands下创建一个新命令。