概要
差分ビルドを有効にする
1
Environment の設定に移動する
Settings > Environment > Advanced に移動します。
2
トグルを有効にする
Differential builds のトグルをオンにします。説明には次のように表示されます: “変更のないワークスペースを再利用することで、ビルドを高速化します。”
3
ビルドをトリガーする
ブループリントの変更を保存するか、Build snapshot をクリックします。有効な親ビルドが存在する場合、次回のビルドでは差分ビルドの実行が試行されます。
仕組み
1. 親ビルドを見つける
success または partial) を探します。条件を満たす親がない場合、ビルドは自動的にフルビルドに切り替わります。
2. ブループリントを比較する
3. ワークスペースのアクションを割り当てる
継承されたワークスペースでは、
initialize は再実行されません。maintenance は、
最新のコードを取得したあとでも単独で実行できるよう、自己完結した形で記述してください。
親のスナップショットにすでにインストールされているツールやランタイムは利用できますが、
その直前に initialize が実行されていることを前提にしたり、以前 initialize が
$ENVRC に書き込んだ環境変数に依存したりしてはいけません。4. ビルドを実行する
- 継承されたワークスペース では、必要なツール、ランタイム、依存関係はすでにインストールされています。システムは最新のコードを取得し (
git pull) 、依存関係を更新するためにmaintenanceコマンドを実行します。 - 再ビルドされるワークスペース は最初からセットアップされ、新たにクローンされたうえで、
initialize+maintenanceの一連の処理がすべて実行されます。 - 削除されたワークスペース では、対応するディレクトリがクリーンアップされます。
initialize をスキップし (それらのツールはすでに親イメージに含まれているため) 、maintenance のみを実行します。
$ENVRC は、差分ビルドを含むすべてのビルドの開始時にリセットされます。
以前のビルドで $ENVRC に書き込まれた環境変数や PATH
エントリは引き継がれません。maintenance でそれらが必要な場合は、
maintenance 側で設定する必要があります。代わりにフルビルドが実行される場合
- フルビルドを明示的に要求した場合 — Build snapshot ドロップダウンから Full build を選択した場合
- 最新のフルビルドが古すぎる場合 — ブループリントの保存などでトリガーされる自動ビルドは、そのプラットフォームにフルビルドが存在しない場合、または最新のフルビルドが Settings > Environment > Advanced の Full build refresh 間隔 (デフォルトは7日ごと) より古い場合、フルビルドとして実行されます
- 再利用可能な親ビルドが存在しない場合 — 同じプラットフォームおよびマシン構成で、スナップショットイメージを持つ
successまたはpartialのビルドが存在しない場合 - 親ビルドに互換性がない場合 — 親ビルド以降にプラットフォーム、マシン構成、ベースイメージ、または Clone repositories on all platforms の設定が変更された場合、あるいは親ビルドに比較対象となるシークレットのベースラインがない場合
- 組織またはenterpriseの設定が変更された場合 — 親ビルド以降に組織またはenterpriseのブループリント、ブループリントファイル、シークレットが変更された場合
build の種類を確認する
- Settings > Environment > Snapshots に移動します
- 履歴内の build をクリックします
- Build kind バッジに Differential (青) または Full build (デフォルト) が表示されます
- Differential: 「変更されたワークスペースのみが再ビルドされ、変更されていないものは同じ設定で最後に成功した build から引き継がれます」
- Full build: 「すべてのワークスペースが最初からビルドされます」
利点
フルビルドを手動でトリガーする
initializeステップとmaintenanceステップが再実行されます。
よくある質問
差分ビルドを有効にすると、セッションに影響しますか?
差分ビルドを有効にすると、セッションに影響しますか?
いいえ。セッションはビルド方法にかかわらず、常に最終スナップショットから起動します。違いはビルド速度だけです。
差分ビルドで問題のあるスナップショットが生成された場合はどうなりますか?
差分ビルドで問題のあるスナップショットが生成された場合はどうなりますか?
Settings > Environment > Snapshots で以前の正常なビルドをピン留めし、その後フルビルドをトリガーしてクリーンなスナップショットを取得してください。差分ビルドを完全に無効にして、フルビルドに戻すこともできます。
部分ビルドは親として扱われますか?
部分ビルドは親として扱われますか?
はい。ステータスが
partial のビルド (一部のワークスペースは成功し、一部は失敗した状態) も親として使用できます。親で成功したワークスペースからのみ継承されます。
