javihgil/composer-ci-tools

此包已被弃用且不再维护。未建议替代包。

库,用于将一些测试和开发工具集成到composer脚本中

v1.0.2 2016-08-10 19:48 UTC

This package is auto-updated.

Last update: 2020-05-22 08:26:16 UTC


README

此库提供了一种简单的方法,将一些常见的开发测试任务集成到composer工作流程中。

将CI脚本包含到composer配置中的优势是使用一个独特的工具(同时已安装)来集成开发和测试逻辑。

配置

$ composer require javihgil/composer-ci-tools:~1.0 --dev

使用

这是一个示例 composer.json

{
    "extra": {
        "ci-tools": {
            "global": {
                "log-format": "  <fg=cyan>> %s</>"
            },
            "phpunit": {
                "report-config": "phpunit-reports.xml"
            },
            "git": {
                "commit-msg-regex": "/^[a-z\\s\\-0-9\\.]{20,}$/i",
                "commit-msg-error": "The commit message must be at least 20 characters long"
            },
            "phpcs" : {
                "standard": "PSR2",
            }
        }
    },
    "scripts": {
        "post-install-cmd": [
            "Jhg\\ComposerCiTools\\GitHooksInstaller::preCommit",
            "Jhg\\ComposerCiTools\\GitHooksInstaller::commitMsg"
        ],
        "pre-commit-hook": [
            "Jhg\\ComposerCiTools\\Lint::php",
            "Jhg\\ComposerCiTools\\PhpUnit::test"
        ],
        "commit-msg-hook": [
            "Jhg\\ComposerCiTools\\Git::commitMsgRegex"
        ],
        "test": [
            "@composer validate",
            "Jhg\\ComposerCiTools\\PhpCsFixer::fix",
            "Jhg\\ComposerCiTools\\Lint::phpLazy",
            "Jhg\\ComposerCiTools\\PhpUnit::test",
            "Jhg\\ComposerCiTools\\SecurityChecker::check"
        ],
        "report": [
            "@composer install",
            "Jhg\\ComposerCiTools\\PhpUnit::report"
            "Jhg\\ComposerCiTools\\PhpCs::report"
        ]
    }
}

此 composer.json 提供了测试和报告任务。这些可以通过以下命令执行

$ composer test

./composer.json is valid
> Jhg\ComposerCiTools\Lint::php
  > No syntax errors detected in ./src/Script/Lint.php
  > No syntax errors detected in ./src/Script/SecurityChecker.php
  > No syntax errors detected in ./src/Script/Gulp.php
  > No syntax errors detected in ./src/Script/AbstractScriptHandler.php
  > No syntax errors detected in ./src/Script/Write.php
  > No syntax errors detected in ./src/Script/GitHooksInstaller.php
  > No syntax errors detected in ./src/Script/PhpCpd.php
  > No syntax errors detected in ./src/Script/PhpCsFixer.php
  > No syntax errors detected in ./src/Script/PhpUnit.php
  > No syntax errors detected in ./src/Script/PhpCs.php
> Jhg\ComposerCiTools\PhpUnit::test
  > PHPUnit 4.8.24 by Sebastian Bergmann and contributors.
  > Time: 41 ms, Memory: 4.50Mb
  > No tests executed!

$ composer report

> Jhg\ComposerCiTools\PhpUnit::report
  > PHPUnit 4.8.24 by Sebastian Bergmann and contributors.
  > Time: 850 ms, Memory: 7.00Mb
  >
  > No tests executed!
  > Generating code coverage report in HTML format ...
  > done

同时使用 preCommit GIT 钩子,该钩子在安装命令执行后配置。每个由 GIT 启动的 pre-commit 钩子都会执行 pre-commit-hook 任务。在这个例子中,行为是在提交到 git 之前,将验证 PHP 语法和通过 PhpUnit 测试。

参考

全局配置

命令

杂项

针对 Windows 用户的通知

Windows 平台不支持。此工具在 Windows 环境下未经测试。

许可证

本项目根据 MIT 许可证条款许可。请参阅 LICENSE 文件。