ビルド自動化
ビルド自動化(ビルドじどうか、英: build automation)は、ソフトウェアのビルドの作成を自動化するプロセスや、それに関連するプロセスである。自動化対象には、コンピュータのソースコードのバイナリコードへのコンパイル、ライブラリコードのパッケージング、 自動化テストの実行などがある。
概要
編集歴史的には、ビルドの自動化はMakefileなどにより行われてきた。今日の自動化ツールには、大きく分けて2つの一般的なカテゴリがある[1]。
- ビルド自動化ユーティリティ
- このカテゴリには、Make、Rake、Cake、MSBuild、Ant、Maven、Gradle、BuildMasterなどのユーティリティが含まれる。これらのツールの主目的は、ソースコードのコンパイルやリンクなどの実行により、ビルド・アーティファクトを生成することである。
- ビルド自動化サーバー
- スケジュールまたはトリガベースでビルド自動化ユーティリティを実行するウェブベースのツールがある。継続的インテグレーションサーバーは、ビルド自動化サーバーの一種である。
自動化のレベルによって、以下のような分類が可能である。
- Makefileレベル
- Makeベースのツール
- Make以外のツールをベースとするツール
- ビルドスクリプト(またはMakefile)の生成ツール
- 継続的インテグレーションツール
- 構成管理ツール
- メタビルドツールまたはパッケージ管理ツール
- その他
それぞれの分類に含まれるソフトウェアの一覧は、ビルド自動化ソフトウェアの一覧確認できる。
ビルド自動化ユーティリティ
編集ビルド自動化ユーティリティを活用すると、単純で何度も繰り返し実行するタスクを自動化できる。ツールを使用すると、指定したゴールに到達するために、正しく、指定した順序で、各タスクを実行するプロセスを計算してくれる。タスク指向のものとプロダクト指向の2種類のビルドツールがある。タスク指向のツールはネットワークの依存関係を特定のセットのタスクの観点から記述するのに対して、プロダクト指向のツールの場合は、ツールが生成するプロダクトの観点から記述する[2]。
ビルド自動化サーバー
編集ビルドサーバーは継続的インテグレーションサーバーが登場するはるか昔から存在しているが、インテグレーションサーバーは一般に継続的インテグレーションサーバーと同義であるのに対して、ビルドサーバーにARAツールやALMツールに組み込まれる場合がある。
サーバーの種類
- オンデマンド自動化サーバーでは、ユーザーがコマンドラインでスクリプトを実行する。
- スケジュール自動化サーバーでは、継続的インテグレーションサーバーがnightlyビルドを実行する。
- トリガー式自動化サーバーでは、継続的インテグレーションサーバーがバージョン管理システムへのコミットのたびにビルドを実行する。
脚注
編集- ^ 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
関連項目
編集- アプリケーション・リリース自動化 (ARA)
- 継続的構成自動化(CCA)
- 継続的インテグレーション(CI)
- 継続的デリバリー(CD)
- 継続的テスト
- DevOps
- ビルド自動化ソフトウェアの一覧
- 製品ファミリーエンジニアリング
- リリース・エンジニアリング(RE)
- ソフトウェア構成管理(SCM)
- ユニットテスト