2016-07-28 4 views
1

現在、私はSymfony BundleをテストするためにTravis CIを使用しています。 PHPUnitのがdev依存関係として宣言されているので、PHPUnitはComposerでインストールされています: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" 
    }, 
    … 
} 

私は、PHPUnitがすべてチェックする必要があるため、ComposerでPHPUnitのは、いくつかの時間がかかるインストール、各ビルド後~/.composerフォルダをキャッシュするためにトラビスCIのキャッシュを使用する場合でもそれらをインストールする前に依存関係。


だから私は、1つのコマンドでインストールすることができますPHPUnitののPHARバージョンの使用についてを考えていた:

wget https://phar.phpunit.de/phpunit.phar 

をしかし、私はトラヴィスCIに、このコマンドを使用する場合は、PHPUnitは一度ダウンロードされますそれぞれのビルドで。方法はありますかキャッシュphpunit.pharファイル?簡単な方法は、ファイルをキャッシュに入れ、このファイルの日付をチェックし、ファイルが1日より古い場合は新しいバージョンをダウンロードすることですが、より簡単な解決法があるかもしれません。

PHPUnitには--self-updateオプションがありますが、それはwill be removed in the next major releaseです。

答えて

0

ビルド間に特定のディレクトリを保存するようにトラビスを設定することができます(documentationでは「キャッシング」と呼ばれます)。

は、単にあなたのトラヴィスの設定ファイルに以下の設定を追加し、/vendorディレクトリは、全体で構築し持続する必要があります

cache: 
    directories: 
    - vendor 

あなたはまだcomposer.jsonファイルが変更されたときに、依存関係を更新するようにビルドへcomposer installの呼び出しを含める必要があります。 composer installプロセスをさらに高速化するには、composer.lockファイルをバージョン管理に追加することもできます。


また、あなたはもちろんのビルドの間、ダウンロードphpunit.pharファイルを保つシンプルに同じ機能を使用することができます。

+0

申し訳ありませんが、私は既にComposerのキャッシュにTravis CIキャッシュを使用していることを示すのを忘れていました。 –

+0

ああ、そうだ。ダウンロードした 'phpunit.phar'ファイルもキャッシュしてみませんか? – helmbert

+0

これは、Travisがすべてのビルドで2.9 Mbの 'phpunit.phar'ファイルをダウンロードすることを意味するためです。 –

関連する問題