mattsqd/robovalidate

一组Robo命令,用于在本地环境或管道中运行各种验证任务

安装次数: 5,284

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:robo-tasks

1.4.0-alpha 2024-07-31 17:51 UTC

README

一组Robo命令,用于在本地环境或管道中运行各种验证任务

  • 编码标准(validate:coding-standards
    • 使用PHPCS验证代码。
    • Drupal项目无需配置。
  • Composer锁定(validate:composer-lock
    • 确保在执行composer install时不会出现此消息

警告:锁定文件未与composer.json的最新更改保持同步。您可能正在获取过时的依赖项。运行update来更新它们。

  • 提交消息(validate:commit-messages
    • 使用正则表达式验证提交消息。
  • 分支名称(validate:branch-name
    • 使用正则表达式验证分支名称。
    • 注意:此命令有一个可选的单个参数,即分支名称,如果无法自动确定当前分支名称。
  • 运行所有上述命令(validate:all

安装

composer require mattsqd/robovalidate

用法

使用vendor/bin/robo执行Robo任务。

配置

有两种方式来配置命令。

  1. 在运行命令时传递选项。
  2. 在你的根目录中创建(或更新)一个robo.yml文件,该文件包含选项。

第二种方式是最简单的,因为一些选项是数组,尝试在运行时传递数组会变得非常丑陋。

所有选项都位于robo.yml中的command.validate.options命名空间下。

一些命令共享相同的选项,例如project-id。因此,更改它将影响所有命令,除非你将该键移到特定命令部分下。你可以通过'pattern'看到这个例子,它被用于两个命令。

如果你想要使用robo.example.yml中的内容初始化你的robo.yml,请使用以下命令

vendor/bin/robo validate:init-robo-yml

快速入门

快速入门假设

  • 这是一个使用Drupal和DrupalPractice编码标准的Drupal项目。
  • 你希望提交消息类似于:'ABC-1234: A short message',并且你正在将它们合并到origin/develop。
  • 你希望分支名称类似于:main、develop、hotfix/3.3.1、release/3.3.0和feature/ABC-123-a-short-message。
  • 你的composer.lock位于根目录中,而composer位于vendor/bin/composer。

这可以通过在你的项目根目录中创建以下内容的robo.yml来配置

command:
  validate:
    options:
      project-id: ABC

然后运行vendor/bin/robo validate:all

如果上述任何一项不适用,你可以

  • 调用单独的命令而不是validate:all,或者
  • 按照robo.example.yml中的方式配置你的robo.yml。

请参阅robo.example.yml以获取显式配置的默认值的示例。

对于每个选项,你只需覆盖你想要更改的选项即可,不需要复制整个文件,尽管你可以。

在运行validate:init-robo-yml后配置robo.yml

项目ID

首先选择是否使用项目ID。项目ID用于验证提交信息和分支名称。如果您想使用项目ID,可以自行决定。项目ID是一个很好的参考,可以确保您提交到正确的项目,如果使用BitBucket,它也很方便,因为问题中包含项目ID。如果您不想使用项目ID,请从robo.yml中删除{$project_id}。这个项目的robo.yml不使用项目ID,您可以作为示例使用

分支名称

分支命名方案通常在不同项目间会有所不同,所以请确保您可能使用的所有分支名称在valid-branch-names中都有相应的条目。例如

  • 如果您使用dev而不是develop,您可能需要更改条目。
  • 如果您有一个stage分支,您可能需要添加另一个explicit|stage条目。
  • 如果您不希望使用patterncustom-help属性中使用的正则表达式匹配,只需从valid-branch-names中删除custom|条目即可。

提交信息

提交信息默认为BitBucket风格。GitHub使用一组特殊的单词来链接到问题。您可以查看这个项目的robo.yml来了解如何强制执行这些关键词。如果您使用项目ID,您需要将其添加回模式和帮助文本。

在持续集成中运行

该项目有一个可用的GitHub Action,如果您也使用GitHub Actions,应该可以将其复制到您的项目中。您可以在https://github.com/mattsqd/robovalidate/blob/1.x/.github/workflows/run-validation.yml找到它。

Run validation with RoboValidate

需要注意的是,vendor/bin/robo validate:commit-messages需要一个目标分支,以便只检查当前分支之外的提交。默认情况下,这设置为develop。如果开发人员合并到的分支不是develop,您可以更改该值或传递与同一GitHub动作相同的值,传入仅在拉取请求事件期间可用的目标分支。这就是为什么有两个单独的步骤,而不调用vendor/bin/robo validate:all。请注意,当前分支也被传递,因为在GitHub的PR中,它不会干净地检出当前分支。相反,您将留在一个新的哈希值上,这是当前分支合并到目标分支的合并提交。因此,所有提交都将被处理,最后一个提交可能不会通过验证,因为GitHub创建了一个提交。