大阪帰るはずが帰れなくて東京いるんでね。
予定ぽっかり空いて暇なんすよね。
ってことでシリーズ第2弾!
はじめに
Jenkinsとはなんぞやという人向けの記事です。
Jenkinsの概要からJenkinsをインストールするところまでです。
Jenknisとは
JenkinsとはJavaで書かれたオープンソース継続的インテグレーションツールである。このプロジェクトはHudsonからフォークされた。オラクルが2010年12月にHudsonの商標を登録したことによるものである。
ソフトウェア開発向けに継続的インテグレーションサービスを提供しており、Apache TomcatなどのServletで動作しているサーバーベースシステムである。CVS、Subversion、Git、Mercurial、Perforce、Clearcaseといったバージョン管理システムツールに対応し、Apache AntやApache Mavenにおける任意のシェルスクリプトやWindowsバッチコマンドといったプロジェクトを実行することが出来る。おもなJenkins開発者には川口耕介がおり、MIT Licenseで公開されているフリーソフトウェアである。
ビルドはバージョン管理システムにおけるコミットでのトリガ、cronライクのメカニズムを通したスケジューリング、他のビルドが完了した時の構築、特定のビルドURLによるリクエストといった様々な方法で起動することができる。
出典:Wikipedia
なんのこっちゃですねー。もうちょい簡単に書いて欲しいですねー。
CIツールについて
クラウドでiOS/AndroidアプリのCIだとcircleciですかね?
まぁ他のことにも使えるし、クラウドより自由だし、一台くらい物理サーバーあってもいいよねってことでakippa社にはMac miniさんが鎮座しております。
Jenkins自体はJavaなので、WindowsでもMacでもLinuxでも動くけど、iOSビルドするならMacしかないですねー。
Jenkinsを使うメリット
JenkinsというかCIツールを使うメリットですねー。
1.テストアプリ配布の手間が省ける。
CIツールなしでテストアプリを配布するには
iOS:UDID集めて、登録して、プロビジョニングプロファイル更新して、自動テストやって、Archiveして、Exportして、配布場所用意して、アップロード...
Android:自動テストやって、Generate Signed APKして、配布場所用意して、アップロード...
めんどくさい!CIツール使えば、バージョン管理システムにコミットするだけでおk!お手軽!
2.セキュリティ面で安全・事故のリスクが減る
申請用ビルドを作るには
iOS:配布用の証明書とProvisioning ProfileをビルドするPCに登録しなきゃいけない。
Android:keystoreとパスワード、key aliasとパスワードを共有しないといけない。
ないとは思いたいけど、エンジニアが悪意を持ったコードを埋め込んで申請する。なーんてこともなくはない。
かといって特定の人間しか申請できないのもそれはそれで困る。。
CIツールを使えば申請用のビルドも全部お任せしちゃえばおk!
生成されたipaなりapkをごにょごにょすればいいだけ!
人の手も一切入れられない!
ぼくの体験談なんですけどね。
当時大手SAPでストアランキングも上位の某有名ゲームの開発責任者をしてたんですね。とあるバージョンアップ申請の時。
テストアプリをみんなに配布してテストしてもらってはい、おk!
自分のPCでビルドして、申請!通った!リリース!
あれー?なんか変ー。
ログインできひん。。アクセスログ見て青ざめるぼく。
デバッグコード入ってるやんこれ!
結局、掲載停止してストアからしばらく非表示に。
人生史上最大に青ざめましたよ。
純粋な損失だけでも多大な金額なのに、これに広告とか外部とのキャンペーンとかかぶってたら、、首吊るとこでしたね。
人の手が入る以上、どんなに気をつけててもミスは起きますからね。
慣れてくると気をつけるのも忘れたりするし。
CIツールはね、機械ですから。設定した通りにしか動かない!素晴らしい!
インストール方法
前置きが長くなりましたが。
さっそくインストール。
・動作環境
OS : Mac OS X El Capitan 10.11.6
・インストールするもの
JDK 1.8.0
Jenkins最新版
・事前準備
こちらを参考にXcodeとHomebrewをインストールしておきましょう。
・JDKインストール
こちらからMac OS X用のインストーラー(dmg)をダウンロードしてインストール
・Jenkinsインストール
$ brew install jenkins
簡単ですねー。
次回は初期設定編ですよー。