Affected Graph - CI/CD用語集の定義
affected graphは、変更されたファイルをそれに依存するプロジェクトへとマッピングし、CIがcommitのたびにmonorepo全体を再buildする代わりに、影響を受けないものすべてをスキップできるようにします。
affected graphは、変更されたファイルの集合によってmonorepo内のどのプロジェクトやtaskが影響を受けるかを、変更点から依存グラフをたどって特定し、CIが実際に変わったものだけをbuildおよびテストできるようにします。
Nx、Turborepo、Bazelのようなツールは、repoの成長に合わせてmonorepoのCIを高速に保つため、affectedセットを計算します。
計算方法
ツールはベースのcommitと差分を取り、変更されたファイルを所有プロジェクトへマッピングし、依存グラフをたどって依存側を含めます。結果は、影響を受け得るtargetの最小集合になります。
CIでの位置づけ
affectedなtargetだけを実行するとpipeline時間はおおむね変更の大きさに比例しますが、正確な依存グラフが必要です。エッジの欠落は、本来実行すべきtargetをスキップしてしまうことがあります。
関連ガイド
Critical Path Analysis (Pipeline) - CI/CD Glossary DefinitionCritical Path Analysis (Pipeline): Critical path analysis finds the longest chain of dependent stages in a pi…
Build Fingerprint - CI/CD Glossary DefinitionBuild Fingerprint: A build fingerprint is a hash computed from a task’s inputs (source files, dependencies, t…
Test Impact Analysis - CI/CD Glossary DefinitionTest Impact Analysis: Test impact analysis (TIA) selects the subset of tests affected by a code change, using…