# Blaze ## 概要 [[Google]] が選択するビルドツール。C++、Java、Python、Go、JavaScript を含む幅広い言語のバイナリビルドをサポートする。後にオープンソース化され Bazel と改称された。[[@2016__OReilly__SRE Book - Chapter 8 Release Engineering]] で、自動リリースシステム [[Rapid]] が呼び出すビルドエンジンとして紹介される。 ## 特徴 エンジニアはビルドターゲット(JAR ファイル等、ビルドの出力)と、各ターゲットの依存関係を定義する。ビルド実行時、Blaze は依存ターゲットを自動的にビルドする。バイナリとユニットテストのビルドターゲットは Rapid のプロジェクト設定ファイルで定義され、一意のビルド識別子などプロジェクト固有のフラグが Rapid から Blaze へ渡される。すべてのバイナリはビルド日・リビジョン番号・ビルド識別子を表示するフラグをサポートし、成果物と「どうビルドされたかの記録」を容易に対応づけられる。 Blaze はビルドの再現性を担保するヘルメティックビルド(hermetic build)の思想を体現しており、ビルドツール自体もソースコードリポジトリのリビジョンに基づいてバージョン管理される。そのため、チェリーピックを伴うリリースであっても、当該プロジェクトが元々ビルドされた時点のビルドツールバージョンが使われ続ける。 ## 関連 - [[@2016__OReilly__SRE Book - Chapter 8 Release Engineering]]: 本エンティティの一次出典 - [[Rapid]]: Blaze を呼び出す自動リリースシステム - [[SRE Book]]: 収録書籍 ## 出典 - Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Murphy (eds.), *Site Reliability Engineering*, O'Reilly, 2016, Chapter 8 (Written by Dinah McNutt).