chromatichq/chq-robo

此包已被弃用且不再维护。作者建议使用 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文件。 robo.drupal.example.yml提供作为Drupal项目的起点。
  • 在代码库的根目录中创建一个.sites.config.yml文件。有关可以/应该配置的内容,请参阅.sites.config.example.yml
  • 将以下内容添加到您的仓库的composer.json "scripts"部分,以便您可以使用composer robo轻松调用robo:
    "scripts": {
      "robo": "robo --ansi"
    }
  • 如果您正在覆盖任何命令,请将以下内容添加到您的仓库的composer.json文件中。请确保用YOURPREFIX替换您自己的命名空间前缀。
    "autoload": {
    "psr-4": {
        "YOURPREFIXRobo\\": "robo/src"
      }
    }
    然后将命令放置在robo/src/Robo/Plugin/Commands中,使用YOURPREFIXRobo\Robo\Plugin\Commands命名空间。
  • 如果您正在使用任何使用GitHubStatusTrait来设置拉取请求状态检查的命令,则在GitHub中必须创建一个个人访问令牌。
    1. 在GitHub中创建一个个人访问令牌
    2. 创建一个名为GITHUB_ACCESS_TOKEN的环境变量,并在将运行检查的环境中将令牌值。

命令

robo dev:refresh

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

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

robo deploy:drupal

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

  1. drush deploy
  2. drush config:import

robo drupal:status-report

drupal:status-report命令,通常在下游仓库中作为composer robo drupal: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命令来更新配置在项目中的PHP版本,这些项目列在robo.ymlphp_version_config_paths密钥中。

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

Slack通知选项

如果您希望Usher向Slack发送通知,您需要在您的办公空间中创建一个Slack应用,然后为要将通知发送到的频道添加一个“入站钩子”。当您创建钩子时,Slack将为您提供一个该频道的唯一URL。您必须将环境变量SLACK_WEBHOOK_URL设置为Usher正在运行的任何环境中的Slack钩子URL。

示例钩子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下创建该命令。