ビルド自動化

ビルド自動化（ビルドじどうか、英: build automation）は、ソフトウェアのビルドの作成を自動化するプロセスや、それに関連するプロセスである。自動化対象には、コンピュータのソースコードのへのコンパイル、ライブラリコードのパッケージング、 自動化テストの実行などがある。

概要 
歴史的には、ビルドの自動化はMakefileなどにより行われてきた。今日の自動化ツールには、大きく分けて2つの一般的なカテゴリがある。

 ビルド自動化ユーティリティ
 このカテゴリには、Make、Rake、Cake、MSBuild、Ant、Maven、Gradle、BuildMasterなどのユーティリティが含まれる。これらのツールの主目的は、ソースコードのコンパイルやリンクなどの実行により、ビルド・アーティファクトを生成することである。
 ビルド自動化サーバー
 スケジュールまたはトリガベースでビルド自動化ユーティリティを実行するウェブベースのツールがある。継続的インテグレーションサーバーは、ビルド自動化サーバーの一種である。

自動化のレベルによって、以下のような分類が可能である。

 Makefileレベル
 Makeベースのツール
 Make以外のツールをベースとするツール
 ビルドスクリプト（またはMakefile）の生成ツール
 継続的インテグレーションツール
 構成管理ツール
 メタビルドツールまたはパッケージ管理ツール
 その他

それぞれの分類に含まれるソフトウェアの一覧は、確認できる。

ビルド自動化ユーティリティ 
ビルド自動化ユーティリティを活用すると、単純で何度も繰り返し実行するタスクを自動化できる。ツールを使用すると、指定したゴールに到達するために、正しく、指定した順序で、各タスクを実行するプロセスを計算してくれる。タスク指向のものとプロダクト指向の2種類のビルドツールがある。タスク指向のツールはネットワークの依存関係を特定のセットのタスクの観点から記述するのに対して、プロダクト指向のツールの場合は、ツールが生成するプロダクトの観点から記述する。

ビルド自動化サーバー 
ビルドサーバーは継続的インテグレーションサーバーが登場するはるか昔から存在しているが、インテグレーションサーバーは一般に継続的インテグレーションサーバーと同義であるのに対して、ビルドサーバーにARAツールやALMツールに組み込まれる場合がある。

サーバーの種類

 オンデマンド自動化サーバーでは、ユーザーがコマンドラインでスクリプトを実行する。
 スケジュール自動化サーバーでは、継続的インテグレーションサーバーがnightlyビルドを実行する。
 トリガー式自動化サーバーでは、継続的インテグレーションサーバーがバージョン管理システムへのコミットのたびにビルドを実行する。

脚注

関連項目