如何在Travis CI上缓存phpunit.phar?
问题描述:
目前我使用Travis CI来测试Symfony Bundle。 PHPUnit的是由作曲家安装,因为PHPUnit的声明为dev
依赖性:如何在Travis CI上缓存phpunit.phar?
{
…
"require" : {
"php": ">=5.5",
"symfony/symfony": "~2.7 || ~3.0"
},
"require-dev": {
"doctrine/orm": "^2.4.8",
"symfony/assetic-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"doctrine/doctrine-fixtures-bundle": "~2.3",
"liip/functional-test-bundle": "~1.4",
"phpunit/phpunit": "4.8.* || ~5.1"
},
…
}
即使我用特拉维斯CI的缓存每个版本后缓存~/.composer
文件夹,安装PHPUnit的与作曲家需要一些时间,因为PHPUnit的必须检查所有安装它们之前的依赖关系。
所以我约使用PHPUnit的的药业版本,可以安装在一个命令思考:
wget https://phar.phpunit.de/phpunit.phar
但是,如果我用特拉维斯CI此命令,PHPUnit的将被下载一次在每个版本。有没有办法让缓存这个phpunit.phar
文件?一种简单的方法可能是将文件放入缓存中,检查该文件的日期并在文件大于1天的情况下下载新版本,但可能有更简单的解决方案。
PHPUnit有--self-update
选项,但是它的will be removed in the next major release。
答
您可以配置特拉维斯保持建立之间的某些目录(documentation中称为“缓存”)。
只需以下配置添加到您的特拉维斯配置文件和/vendor
目录应坚持跨越构建:
cache:
directories:
- vendor
你仍然应该包括composer install
调用您的构建时composer.json
文件更改为更新的依赖关系。要进一步加快composer install
进程,您还可以将composer.lock
文件添加到版本控制。
另外,当然你也可以使用相同的功能,简单的保持之间架起一个下载phpunit.phar
文件。
对不起,我忘记表明我已经在Composer的缓存中使用了Travis CI缓存。 –
哦,我明白了。你为什么不用它来缓存你下载的'phpunit.phar'文件呢? – helmbert
因为这意味着Travis会在每个版本下载2.9 Mb'phpunit.phar'文件。 –