2

heisel.orgで説明されている hudson/python/virtualenv CI ソリューションの概要に従っていますが、この 1 つのステップは本当に面倒です。それは、CI 実行用に作成された virtualenv が構成されている部分です。

pip install -q -E ./ve -r requirements.pip
pip install -q -E ./ve -r requirements-test.pip

これは実行に非常に時間がかかり、ソース ファイルが変更されるたびに、膨大な量のデータを再ダウンロードすることになります。

Hudson でテンプレート ワークスペースを作成して、ベア ワークスペースにチェックアウトする代わりに、事前に準備されたワークスペースにチェックアウトすることはできますか?

4

3 に答える 3

1

以下にいくつかのオプションを示します。

  1. virtualenv/pip インストールに爆発するソース リポジトリにアーカイブを用意します。virtualenv の開始点を再配置可能にする必要があります。

  2. ビルド間でワークスペースを消去しないように、適切な SCM オプションを使用してください (たとえば、svn update を使用するか、Mercurial のクリーン ビルド オプションをチェックしないでください)。次に、インストール コマンドをビルド スクリプトに保持しますが、ファイルが存在しない場合やビルド パラメーターが設定されているif場合などにのみ実行されるように、ステートメントの下に配置します。.pip_installed

  3. Clone Workspaceプラグインを取得して、必要なことを実行できる場合があります。しかし、これは代替の SCM です。Hudson は複数の SCM からチェックアウトしないため、おそらく不要だと思います (これを回避する方法については、この前の質問を参照してください)。

パッケージのローカル キャッシュからプルするように pip 構成をセットアップすることも、おそらく良い考えです。

pip -f http://localhost/packages/
于 2010-10-14T21:56:39.730 に答える
0

拡張機能は、要件ファイルのハッシュで指定されたアーカイブにvirtualenvをパッケージ化することです。前回のビルド以降に要件ファイルが変更されていない場合は、アーカイブを空のvirtualenvディレクトリに抽出するだけです。要件ファイルが変更された場合、アーカイブはまだ存在しないため、pip installを実行して環境を構築し、それを新しいアーカイブに保存します。

于 2011-01-27T16:44:21.777 に答える
0

ワークスペースごとに新しい venv を作成すると、最初に一度だけすべての deps をインストールするだけで済み、その後のビルドははるかに高速になります。支援するために私が書いたスクリプトについては、私の投稿を参照してください。

Python の「Pretty」継続的インテグレーション

于 2011-05-04T15:11:32.340 に答える