Jenkins環境構築 for iOS/Android with DeployGate

[こちら](http://qiita.com/akippa_app/items/6b88694b62050ae89479)のシリーズの適当&Homebrew使わない&スクショ多めバージョン。
Jenkinsのインストール・設定から、iOS/AndroidアプリをビルドしてDeployGateにアップロードするまでシリーズ第一弾。
なお、iOSがなれればCent OSとかでもいいんですけどね。
iOSビルドしたいのでMac一択です。

# JDKインストール
[こちら](http://www.oracle.com/technetwork/java/javase/downloads/index.html)から。

![a.png](https://qiita-image-store.s3.amazonaws.com/0/188928/78a37791-a061-bba8-b1c3-332204c81f08.png)
「JDK」の「DOWNLOAD」をクリックしましょう。    

<img width="572" alt="スクリーンショット 2017-07-25 17.37.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/188928/e4cfae36-e571-364e-9901-6dbc459b8958.png">
「Accept License Agreement」をチェックすると...

![aaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/832de313-77b2-4741-3785-9726827f8ae4.png)
dmgがダウンロードできるようになるので、ダウンロード。
完了したらdmgを開きましょう。

![a.png](https://qiita-image-store.s3.amazonaws.com/0/188928/14c5406e-7961-1095-6a30-c719c7be123b.png)
アイコンをダブルクリック。
あとはインストーラーの言う通りに...

# Jenkinsインストール
[こちら](https://jenkins.io/index.html)から。
＊追記があります。コマンドラインからのインストールをおすすめします。

![aaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/3c8da74d-4086-4e8c-5f9a-9bcee5032b57.png)
「Download」をクリック

![abb.png](https://qiita-image-store.s3.amazonaws.com/0/188928/b202e350-9ab8-3792-6eb0-21ab947ed4af.png)
「Mac OS X」をクリックしてダウンロードしましょう。

![a.png](https://qiita-image-store.s3.amazonaws.com/0/188928/b1682e89-da23-ad64-8e7a-0296de6fbe0e.png)
ダブルクリックでpkgを開きましょう。
あとはインストーラーの言う通りに...

完了するとブラウザで「[http://localhost:8080/](http://localhost:8080/)」が開きますよー

# と思ったんだけど。
なんかpkgからインストールだとうまく動かない。30分経ってもgit fetchが終わらない。ので、結局コマンドラインから。

### Homebrewのインストール

```bash
$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew doctor
```

```bash
Your system is ready to brew.
```
って出ればおk。

一応これもやっておきましょう。

```bash
$ brew update
```

```bash
Already up-to-date
```
って出ればおk。

### Jenkinsのインストール

```bash
$ brew install jenkins
```

完了したら以下で起動

```bash
$ jenkins
```

Mac再起動しても勝手にJenkinsが起動するように以下をやっておきましょう。

```bash
$ cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
```

んで、plist編集。こちらは適宜。LAN内からアクセスする場合は以下の行を削除して、MacのIPアドレスを固定しましょう。

```xml:~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
<string>--httpListenAddress=127.0.0.1</string>
```

plist編集したら再起動しましょう

```bash
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
```

# Jenkins初期設定

はい、こんな画面になってると思います。
 <img width="834" alt="スクリーンショット 2017-07-30 12.53.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/188928/94bf3430-d3c7-09b8-c973-5195a9186bb9.png">

ターミナルで

```shell-session:
$ vim 「Users/.../initialAdminPassword（上に書いてあるやつ）」
```
ってやって、出てきた文字列を「Administrator password」にコピペして、「Continue」

![aa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/b9d7ba31-5baa-a1ad-c547-09aca6373907.png)

「Install suggested plugins」をクリック

![aaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/b9ced046-b982-f70b-ecdd-77ba40f53ab9.png)
しばらくするとこんな画面になりまっせ。入力した情報は忘れないようにメモしましょう。

![aaaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/56e65b67-0a2c-284d-4c27-80fad513757d.png)

で、完了。「Start using Jenkins」をクリックすると、完了！

# iOSビルド用設定
といってもとりあえずビルドするだけなら、Pluginを2つ入れるだけ。あとXcodeとXcode Command Line Toolはインストールされている前提です。XcodeはApp Storeから、Xcode Command Line Toolはさっきいれたはずなのでおk。

![aa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/8590c7c5-f6ca-30a1-0a81-47b16c55c4c2.png)
「Jenkinsの管理」をクリック

![aaaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/fb0ec509-a6e6-343a-6349-d2800052f620.png)
「プラグインの管理」をクリック

![aaa.png](https://qiita-image-store.s3.amazonaws.com/0/188928/4954de69-18a1-a6d0-daa5-ca7a3ec2ebd3.png)
「利用可能」を選択して「フィルター」で検索します。
入れるのは以下2つ。
「Xcode integration」
「CocoaPods Jenkins Integration」
両方チェックをつけたら「ダウンロードして再起動後にインストール」しましょう。

# Androidビルド用設定
Android Studioがインストールされてる前提。
環境変数を追加します。

<img width="830" alt="スクリーンショット 2017-07-31 1.39.10.png" src="https://qiita-image-store.s3.amazonaws.com/0/188928/dacab399-70b7-5b30-2bdf-d76bf5d904fb.png">
Jenkinsの管理→システムの設定と進む
グローバル プロパティ
　環境変数に以下の2つを追加

```
キー：ANDROID_HOME
値：$HOME/Library/Android/sdk

キー：PATH
値：${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
```

# DeployGate用設定
有名な[こちら](https://github.com/jfsso/deploygate-plugin)を拝借。

<img width="817" alt="スクリーンショット 2017-07-31 1.23.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/188928/4a8b5e72-3776-749d-4bbb-fd3f6ae2ac59.png">
「Downlod link」をクリックして、hpiファイルをダウンロード。
Jenkinsにアクセスし、iOS同様、プラグインの管理まで進む。

<img width="825" alt="スクリーンショット 2017-07-31 1.25.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/188928/cb170427-74dc-109e-5a45-504364fd6a1e.png">
「高度な設定」を選択
「プラグインのアップロード」で先ほどダウンロードしたhpiファイルを指定して「アップロード」

「deploygate-plugin」をインストール。
Jenkinsを再起動。

以上。

[株式会社Arrvis](http://www.arrvis.com)