Skip to main content

依存関係のキャッシュ

ワークフローの速度と効率のための依存関係のキャッシュについて説明します。

ワークフロー依存関係のキャッシュについて

ワークフローの実行は、しばしば他の実行と同じ出力あるいはダウンロードされた依存関係を再利用します。 たとえばMaven、Gradle、npm、Yarnといったパッケージ及び依存関係管理ツールは、ダウンロードされた依存関係のローカルキャッシュを保持します。

GitHub ホステッド ランナー上のジョブは、クリーンなランナー イメージで開始されますが、依存関係を毎回ダウンロードする必要があるため、ネットワークの利用率が増大し、実行時間が長くなり、コストが高くなります。 依存関係などのファイルの再生成にかかる時間を短縮しやすくするために、GitHub ではワークフロー内で頻繁に使われるファイルをキャッシュできます。

メモ

セルフホステッド ランナーを使用する場合、ワークフロー実行のキャッシュは、GitHub 所有のクラウド ストレージに保存されます。 顧客所有のストレージ ソリューションは、GitHub Enterprise Server でのみ使用できます。

成果物の比較と依存関係のキャッシング

成果物とキャッシングは、GitHubにファイルを保存できるようにするので似ていますが、それぞれの機能のユースケースは異なっており、入れ替えて使うことはできません。

  • パッケージ管理システムからのビルドの依存関係など、ジョブまたはワークフローの実行の間で頻繁に変更されないファイルを再利用する場合は、キャッシュを使用します。
  • ビルドされたバイナリやビルド ログなど、ワークフローの実行が終了した後に表示するためにジョブによって生成されたファイルを保存する場合は、成果物を使用します。

ワークフロー実行の成果物について詳しくは、「Store and share data with workflow artifacts」をご覧ください。

次のステップ

ワークフローに依存関係のキャッシュを実装するには、「Dependency caching reference」を参照してください。