0

我有一个 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 用户相同的文件,它看起来是正确的,但是代码审查脚本在与同一用户完全相同的位置看到了不同的东西......如何这可能吗?

4

0 回答 0