2

django プロジェクトに Jenkins CI を使用しています。Django-Jenkins の統合には、django-jenkins アプリを使用しています。Jenkins のビルド ステップで、新しい virtualenv を作成し、要件ファイルを使用して各ビルドのすべての依存関係をインストールします。ただし、前回のビルド以降に依存関係が何も変更されていない場合でも、すべての依存関係の新しいコピーを PyPI ミラーからダウンロードする必要があるため、ビルドが非常に遅くなります。そこで、PIP_DOWNLOAD_CACHE環境変数を設定して、pip に組み込まれているローカル キャッシュの使用を開始しました。しかし、ビルド プロセス全体は依然として非常に遅く、10 分以上かかります。プロセス全体を高速化する方法はありますか? たぶん、コンパイルされた依存関係などをキャッシュすることによってですか?

4

2 に答える 2

1

requirements.txt ファイルが変更された場合にのみ、新しい virtualenv をインストールしてください。これは、いくつかのシェル コマンドを使用して簡単に実行できます。私たちは、プロジェクトの 1 つで同様のことを行っています。Jenkins シェル ウィンドウでは (svn up 後):

touch changed.txt
stat -c %Y project/requirements.txt > changed1.txt
diff -q changed.txt changed1.txt || echo "DO YOUR PIP --upgrade HERE!"
于 2013-07-18T09:15:35.837 に答える
0

ビルドするたびに新しい virtualenv をわざわざ作成する必要はありません。1 つだけ作成し. /path/to/venv/bin/activate、「シェル スクリプトの実行」ビルド ステップとしてアクティブ化するだけです (ここでは Linux を使用すると仮定します)。次に、新しい依存関係をインストールする必要がある場合は、自分で venv をアクティブ化し、新しいパッケージを pip インストールできます。

于 2013-07-19T21:02:51.977 に答える