javihgil / composer-ci-tools
此包已被弃用且不再维护。未建议替代包。
库,用于将一些测试和开发工具集成到composer脚本中
v1.0.2
2016-08-10 19:48 UTC
Requires
- php: >=5.3.3
- symfony/filesystem: ~2.3|~3.0
- symfony/options-resolver: ~2.3|~3.0
- symfony/process: ~2.3|~3.0
Requires (Dev)
- asm89/twig-lint: dev-master
- composer/composer: 1.1.*
- friendsofphp/php-cs-fixer: ~1.12
- hexmedia/yaml-linter: 0.1
- leaphub/phpcs-symfony2-standard: ~2.0
- mockery/mockery: ~0.9
- phpunit/phpunit: 4.8.*
- sebastian/phpcpd: 2.0.*
- sensiolabs/security-checker: ~3.0
- squizlabs/php_codesniffer: ~2.0
- symfony/finder: ~2.3|~3.0
Suggests
- asm89/twig-lint: Twig lint for no symfony projects
- friendsofphp/php-cs-fixer: Fix Code Style. More info in http://cs.sensiolabs.org/
- hexmedia/yaml-linter: Yaml lint for no symfony projects
- leaphub/phpcs-symfony2-standard: Symfony2 standard for PHP_CodeSniffer
- phpunit/phpunit: Use a specific local version of phpunit
- sebastian/phpcpd: Copy paste detector
- sensiolabs/security-checker: Check for reported vulnerabilities in project dependencies
- squizlabs/PHP_CodeSniffer: Code style checks
- symfony/finder: Install symfony/finder to use this scripts in Windows platforms
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 文件。