ビルドサーバーの効用

ビルドサーバーがあって良かったことと、ないプロジェクトに入るとき思ったこと。

【話の前提】

ビルドサーバーあったプロジェクトでは「コミット→自動ビルド」ではなく、ボタンを押すとビルドされる、いわゆる手動ビルドでした。たぶん、本番用、客先の検証環境用、社内の検証用と分けてたから、一斉に全部ビルドされるとおかしな変更が本番にもまぎれちゃうからそうしなかったんじゃないかな。設定できるとは思うがわからん。
ビルドすると社内の検証環境に自動デプロイされる。
お客さんの検証環境は本番と同じAPサーバーにあるが、お客さんがマニュアルを作る等の都合上、社内から自動デプロイはせず、お客さんに確認後、手動でデプロイしてる。本番も同様。

ビルドサーバーあって良かったこと

コミットしたものが動くかどうかが、少なくとも開発者レベルで確認できる。
もしもUTが自動化されていた場合、ここで「確実に」動作することが確認できる。
ビルドサーバーでビルドが通った後、ステージング環境(検証用の環境)に自動デプロイされる場合、少なくともチームレベルで動作するかどうかが確認できる。
もしも画面を実際に動作させるテスト(なにテストって言うかはよくわからん)が自動化されていた場合、ここで「確実に」動作することが確認できる。
タイミング的な理由で未コミットの開発者レベルのテストが通ったコードを一斉にコミットする場合、コミットしてビルドサーバーでビルドすれば、動作しないということがすぐ確認できる。
ただそういう場合にはできるだけブランチを使うべきだったし、変更が追えなくなるので、タスクや要求の単位でコミットすべき。また、細かい単位でコミットしたら、都度ビルドし、コミットしたことで動かないということを極力防ぐ。動かなくなったら戻したりすると思うが、今回は発生しなかった。

ビルドサーバーがないプロジェクトに入るときに思ったこと

これから入る。
コミットしたことで動かなくなった場合、どこのコミットが原因かわからないよな…どうすんだろ?
客先にデプロイするものはどこでビルドするんだ?誰かの開発環境でやるのか?本当にそれで大丈夫なのか?