17

Travis-CI が進化し、その機能セットを拡張するにつれて、自然に使いやすくなります。最近、「ビルドの高速化」に関するこの記事を読みました。私が取り組んでいる Django プロジェクトのビルドには、約 25 ~ 30 分かかります。この時間のほぼ半分は、virtualenv の作成、つまりプロジェクトの要件のインストールに費やされます。残りの半分の時間は、実際のテスト実行に使用されます。

テストの実行時間を短縮する取り組みがあります。それでも、プロジェクトの要件をキャッシングまたはバンドルすることで、より大きなスピードアップが可能かどうか疑問に思っていました. Plone に関しては、ビルドアウトを使用するため、いくつかのオプションがあるようです。私もWADを見ていました。もちろん、要件をキャッシュするときは、要件の更新時に無効にする必要があります。

セットアップ時間を短縮することで、(Django) プロジェクトの Travis ビルド速度を改善した人はいますか?

4

3 に答える 3

19

更新これは Travis のファースト クラスの機能になりました: http://blog.travis-ci.com/2013-12-05-speed-up-your-builds-cache-your-dependencies/

私はちょうどこれをいじっていました.virtualenvサイトパッケージを次のようにキャッシュできるようです(pythonバージョンへのパスを更新してください):

cache:
  directories:
    - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages

binまたはsrcディレクトリをキャッシュしないという小さな問題があります。virtualenv ディレクトリ全体をキャッシュしようとしましたが、git を介してsrcディレクトリにインストールされた依存関係に対して奇妙なエラーが発生します。

古い要件を無効にするという問題が残っています。要件から何かを削除すると、virtualenv に保持されるため、明示的に pip ( pip remove foo) で削除するか、Travis が API を作成してキャッシュを無効にするまで待つ必要があります...

もう 1 つのオプションは--download-cache、pip のオプションを使用して、そのディレクトリをキャッシュに追加することです。

cache:
  directories:
    - $HOME/.pip-cache/

install:
  - pip install -r requirements.txt --download-cache $HOME/.pip-cache

これによりダウンロードが速くなりますが、すべての要件をコンパイルしてインストールする必要があります。

于 2013-10-19T00:08:19.157 に答える
10

これは、長年にわたってさらに簡単になりました。最新の方法は次のとおりです。

cache: pip

それでおしまい。

于 2016-06-03T21:49:31.920 に答える
6

With pip 7:

cache:
  directories:
    - $HOME/.pip-cache/

install:
  - pip install --upgrade pip
  - pip install -r requirements.txt --cache-dir $HOME/.pip-cache
于 2015-05-24T16:11:09.993 に答える