ホームページ >バックエンド開発 >Python チュートリアル >Azure パイプライン: UV キャッシュ

Azure パイプライン: UV キャッシュ

WBOY
WBOYオリジナル
2024-07-25 19:46:00974ブラウズ

Azure Pipelines: uv Cache

UV を使用して Docker のビルドを高速化する方法についてはすでに書きました。今日は、Python プロジェクトの CI ビルドを高速化する方法を簡単に説明したいと思います。

uv は、ほとんどのプロジェクトでドロップイン代替品として機能する優れた pip 代替品です。 pip よりも Python パッケージの解決とインストールがはるかに速く、特に CI パイプライン (または Docker ビルド) に適しています。パイプラインが高速化すると、開発期間が短縮され、生産性が向上します。

パイプラインに同じパッケージをインストールし続ける場合は、パイプラインの実行全体で uv が内部的に使用するキャッシュを再利用した方がよいでしょう。

パイプライン内のタスクをキャッシュする

そのためには、uv venv と uv pip install ... を実行する前、および uv をインストールした後に、次のコードを azure-pipelines.yml に挿入する必要があります。

- bash: |
    echo "##vso[task.setvariable variable=uv-cache-path;]$(uv cache dir)"

- task: Cache@2
  displayName: Cache uv
  inputs:
    key: uv cache | "$(python.version)"
    path: $(uv-cache-path)

これにより、UV キャッシュへのパスを含む新しい変数 uv-cache-path が設定され、後続のパイプライン実行のためにこのパスがキャッシュされます。使用する Python のバージョンを python.version という変数に保存するとします。これを、使用している Python バージョンに直接置き換えることもできます。ただし、引用符で囲むとタスクがバージョンをパスとして解釈してしまうため、必ずバージョンを引用符で囲んでください。

キャッシュをプルーニングする

最後に、新しい機能を使用して、アップロードする前にキャッシュを削除できます。これにより、キャッシュのファイル サイズが減少し、キャッシュのアップロードとダウンロードが高速になり、おそらく時間を節約できます。パイプライン ジョブが終了する前に、UV Cache prune --ci を実行する必要があります:

- script: uv cache prune --ci

まとめ

要約すると、Python パイプラインを高速化したい場合、最初のステップは uv を使用することです。 pip ... 呼び出しを uv pip ... に置き換えるだけで、パイプラインがどれだけ高速になるかを確認できます。

大規模なビルド手順を必要とする多くのパッケージをインストールする場合は、UV キャッシュを再利用する価値があるかもしれません。そのために、Azure Pipelines によって提供される Cache@2 タスクを使用できます。

以上がAzure パイプライン: UV キャッシュの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。