matthiasmullie / ci-sniffer
检测代码运行在哪个CI环境中以及如何获取正在测试的代码的详细信息。
1.2.1
2016-04-07 18:31 UTC
Requires
- php: ^5.3|^7.0
Requires (Dev)
- fabpot/php-cs-fixer: ^1.0
- phpunit/phpunit: ^4.8|^5.0
README
是Travis吗?
所有CI服务提供商都设置了一些环境变量来告知你是谁以及一些额外的信息,但它们在如何以及暴露什么方面缺乏一致性。这将确定你处于什么环境以及如何访问其中的一些(有时难以获取)数据,这样你就无需自己处理。
支持的CI服务提供商
示例用法
$factory = new \MatthiasMullie\CI\Factory(); $provider = $factory->getCurrent(); // outputs 'travis', 'circle', ..., depending on what CI server the code is run echo $provider->getProvider(); // e.g. 'travis' // outputs data about the thing being tested echo $provider->getRepo(); // e.g. 'https://github.com/matthiasmullie/ci-sniffer.git' echo $provider->getSlug(); // e.g. 'matthiasmullie/ci-sniffer' echo $provider->getBranch(); // e.g. 'master' (or '', when testing PR) echo $provider->getPullRequest(); // e.g. '1' (or '', when not testing PR) echo $provider->getCommit(); // e.g. '01081a9c908717bf315f992b814a36c7c9ba7e65' echo $provider->getPreviousCommit(); // e.g. '45da9806d50c98f9c88dc0049303cf039b93a95b' echo $provider->getAuthor(); // e.g. 'Matthias Mullie' echo $provider->getAuthorEmail(); // e.g. 'ci-sniffer@mullie.eu' echo $provider->getTimestamp(); // e.g. '2016-02-17T18:36:49+01:00' echo $provider->getBuild(); // e.g. '62.1'
或者执行二进制文件(bin/ci-sniffer
)以获取所有信息的JSON格式。例如。
{ "provider":"travis", "repo":"https:\/\/github.com\/matthiasmullie\/ci-sniffer.git", "slug":"matthiasmullie\/ci-sniffer", "branch":"master", "pr":"", "commit":"01081a9c908717bf315f992b814a36c7c9ba7e65", "previous-commit":"45da9806d50c98f9c88dc0049303cf039b93a95b", "author":"Matthias Mullie", "author-email":"ci-sniffer@mullie.eu", "timestamp":"2016-02-17T18:36:49+01:00", "build":"62.1" }
安装
如果你使用Composer来管理项目的依赖关系,只需将matthiasmullie/ci-sniffer作为依赖项添加到你的composer.json文件中
composer require matthiasmullie/ci-sniffer
尽管推荐使用Composer,但你实际上可以按任何你想要的方式包含这些文件。
许可证
ci-sniffer遵循MIT许可证。