ビルド自動化(ビルドじどうか、英: build automation)は、ソフトウェアのビルドの作成を自動化するプロセスや、それに関連するプロセスである。自動化対象には、コンピュータのソースコードのバイナリコード(英語版)へのコンパイル、ライブラリコードのパッケージング、 自動化テストの実行などがある。
概要
歴史的には、ビルドの自動化はMakefileなどにより行われてきた。今日の自動化ツールには、大きく分けて2つの一般的なカテゴリがある[1]。
- ビルド自動化ユーティリティ
- このカテゴリには、Make、Rake、Cake、MSBuild、Ant、Maven、Gradle、BuildMasterなどのユーティリティが含まれる。これらのツールの主目的は、ソースコードのコンパイルやリンクなどの実行により、ビルド・アーティファクトを生成することである。
- ビルド自動化サーバー
- スケジュールまたはトリガベースでビルド自動化ユーティリティを実行するウェブベースのツールがある。継続的インテグレーションサーバーは、ビルド自動化サーバーの一種である。
自動化のレベルによって、以下のような分類が可能である。
それぞれの分類に含まれるソフトウェアの一覧は、ビルド自動化ソフトウェアの一覧(英語版)確認できる。
ビルド自動化ユーティリティ
ビルド自動化ユーティリティを活用すると、単純で何度も繰り返し実行するタスクを自動化できる。ツールを使用すると、指定したゴールに到達するために、正しく、指定した順序で、各タスクを実行するプロセスを計算してくれる。タスク指向のものとプロダクト指向の2種類のビルドツールがある。タスク指向のツールはネットワークの依存関係を特定のセットのタスクの観点から記述するのに対して、プロダクト指向のツールの場合は、ツールが生成するプロダクトの観点から記述する[2]。
ビルド自動化サーバー
ビルドサーバーは継続的インテグレーションサーバーが登場するはるか昔から存在しているが、インテグレーションサーバーは一般に継続的インテグレーションサーバーと同義であるのに対して、ビルドサーバーにARAツールやALMツールに組み込まれる場合がある。
サーバーの種類
脚注
- ^ Ceruzzi, Paul E. (2003). A history of Modern computing. The MIT Press. ISBN 978-0262532037
- ^ Clark, Mike (2004). Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps. The Pragmatic Programmers.. ISBN 978-0974514031
関連項目