高速パイプラインのためのGitLab CIキャッシュ戦略
効果的なキャッシュ戦略でGitLab CIパイプライン速度を最適化。キャッシュキー、ポリシー、フォールバックキー、キャッシュとアーティファクトの違いを学ぶ。
Caching & Artifacts
詳細な説明
GitLab CIのキャッシュ戦略
キャッシュはパイプライン速度に最も大きな影響を与える最適化です。適切に設定されたキャッシュは、依存関係の繰り返しダウンロードを回避し、パイプライン時間を50-80%短縮できます。
ブランチベースキャッシュ
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
ロックファイルベースキャッシュ
cache:
key:
files:
- package-lock.json
paths:
- node_modules/
キャッシュキーはpackage-lock.jsonのハッシュです。依存関係が変更されると自動的にキャッシュが無効化されます。
キャッシュポリシー
| ポリシー | 動作 |
|---|---|
pull-push |
ジョブ前にキャッシュをダウンロード、ジョブ後にアップロード(デフォルト) |
pull |
ダウンロードのみ。キャッシュ内容を変更しないジョブに使用。 |
push |
アップロードのみ。初期キャッシュ作成ジョブに使用。 |
キャッシュとアーティファクトの違い
| 特徴 | キャッシュ | アーティファクト |
|---|---|---|
| 目的 | ジョブの高速化 | ジョブ間のファイル受け渡し |
| 信頼性 | ベストエフォート | 保証 |
| スコープ | パイプライン間 | パイプライン内 |
ユースケース
依存関係をインストールするすべてのパイプラインにキャッシュ戦略を適用します。適切なキャッシュ設定により、10分のパイプラインを2-3分に短縮できます。