我有一个 GitLab Runner,它应该通过运行脚本来运行带有一些附加标准的 PHPCS。相关的 gitlab-ci.yml 片段:
code_review:
stage: code_review
tags:
- test
script:
- cd gitlab-ci
- chmod 760 ./code-review
- ./code-review
有一个 composer.json 文件,/home/gitlab-runner/.config/composer/composer.json
其中包含:
{
"require": {
"drupal/coder": "^8.3",
"squizlabs/php_codesniffer": "^3.5",
"dealerdirect/phpcodesniffer-composer-installer": "*",
"phpcompatibility/php-compatibility": "^9"
},
"scripts": {
"install-codestandards": [
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run"
],
"post-install-cmd": [
"@install-codestandards"
]
}
}
在 CI 期间运行的 code-review 脚本有这一行,需要运行它才能使 PHPCS 工作:
composer run-script -d $composer install-codestandards
并且$composer
是/home/gitlab-runner/.config/composer
。
但是,由于某种原因,找不到该脚本。在调试期间,我让脚本输出路径并 cat composer.json 文件,它输出以下内容:
Composer path: /home/gitlab-runner/.config/composer
{
"require": {
"drupal/coder": "^8.3"
}
}
[InvalidArgumentException]
Script "install-codestandards" is not defined in this package
缺少脚本和一些包。根据文件路径和名称,我在 Linux 上查看与 gitlab-runner 用户相同的文件,它看起来是正确的,但是代码审查脚本在与同一用户完全相同的位置看到了不同的东西......如何这可能吗?