Jenkinsによる自動ビルド環境構築の一例

  • 2018.12.26
  • CI
Jenkinsによる自動ビルド環境構築の一例

こんにちは。エンジニアの鈴木聡です。

現在運営開発中のプロジェクトでは、Jenkinsによる自動化の対応を行っております。今回は、具体的にどのように活用しているのかについて、書こうと思います。

基本的な構成

Jenkinsはイベントを監視してジョブを走らせるマスターサーバを1つ、実際にジョブが走るスレーブを複数用意して、多くのキューを分散して行うようにしております。

マスターはGoogle Cloud Platform上にインスタンスを生成して構築し、クライアントはiOSビルドが含まれているためにMac miniを使用しております。

Mac miniは今年発売された新しいものも導入しております。前世代のものよりも確実にビルド速度が速くて幸せです。

コストパフォーマンスがいいので個人的にお気に入りです。

実際に行っていること

Jenkinsで行っていることは、以下のような内容になります。
  • コードスタイルチェック
  • コードテスト(Warning存在チェック含む 残っていたら失敗扱いにしています)
  • Android/iOSアプリビルド
  • AssetBundleビルド(必要に応じて)
  • アプリをHockeyAppに転送
これらの内容を、GitHubでPull Requestが生成/更新されるたびに走るようになっていて、コードスタイルやコードテストのチェックを全て通ったものだけがアプリビルドされHockeyAppからダウンロードして確認することが可能になっております。

(コードスタイルやコードテストのチェックが落ちたものは直るまでレビューされません)

また、各環境のビルドについてもJobが用意されております。

環境によって、Pull Requestがマージされるたびに走ったり、担当者の順番を決めて順番に更新対応をしたり、本番に近い環境については責任者が担当したり、環境に応じた適切なタイミングでビルドを走らせることができるようになっております。

最後に

ビルドまわりの自動化は各プロジェクトでも行っていると思いますが、その中の一例として紹介させていただきました。

快適な開発環境構築の一助になれば幸いです。