server
Xcode
CocoaPods
bot
Xcode9

Xcode 9のBotでpod installする方法(小ネタ)

Xcode 9 + Xcode Server

Xcode 9でのCI (Continuous Integration) がかなりこなれてきたということで、試しにローカルでBotを立ててみました。
従来別途macOS Serverアプリ(OS X Serverとも呼ばれてた?)が必要だったXcode Serverが、Xcode 9に統合されてるのがよいですね。

設定方法は他の方がすでに記事を書いておられますので、参考にしましょう。

Bot上でpod installを実行

で、今回困ったのはCocoaPodsをコマンドラインで実行するところでした。
というのも、今回対象のリポジトリにはCocoaPodsでインストールされるファイルを入れないという方針だったので、リポジトリからcloneした後は必ず pod install を実行してやる必要があったのです。

色々試した挙句、結局以下のようなBotの設定で pod install をビルド前に実行することができました。

  1. ⌘9 でReport Navigatorを表示し、Botを選択(マシン名の下に隠れているかも)
  2. 右上の Edit Bot... ボタンを押す
  3. Triggers タブを選択
  4. 左下の+ボタンを押し「Pre-Integration Script」を選択
  5. 適当に名前をつけて、右側のエディタ部分に以下を入力
#!/bin/sh

cd "${XCS_PRIMARY_REPO_DIR}"   # リポジトリのディレクトリに移動

if [ ! -e Pods ] ; then        # Podsディレクトリが存在しなければ
    /usr/local/bin/pod install # pod installを実行。フルパスじゃないとダメっぽい。
fi

参考記事: Pod Install in XCode Bots Trigger
6. Done を押して完了


以上、何かしらの助けになれば幸いです!