# 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).