Xcode 9 + Xcode Server
Xcode 9でのCI (Continuous Integration) がかなりこなれてきたということで、試しにローカルでBotを立ててみました。
従来別途macOS Serverアプリ(OS X Serverとも呼ばれてた?)が必要だったXcode Serverが、Xcode 9に統合されてるのがよいですね。
設定方法は他の方がすでに記事を書いておられますので、参考にしましょう。
- XCode9のBotを使ってみる
- [iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた
- Xcode9 + Xcode Server = Comprehensive iOS Continuous Integration
Bot上でpod installを実行
で、今回困ったのはCocoaPodsをコマンドラインで実行するところでした。
というのも、今回対象のリポジトリにはCocoaPodsでインストールされるファイルを入れないという方針だったので、リポジトリからcloneした後は必ず pod install を実行してやる必要があったのです。
色々試した挙句、結局以下のようなBotの設定で pod install をビルド前に実行することができました。
- ⌘9 でReport Navigatorを表示し、Botを選択(マシン名の下に隠れているかも)
- 右上の Edit Bot... ボタンを押す
- Triggers タブを選択
- 左下の+ボタンを押し「Pre-Integration Script」を選択
- 適当に名前をつけて、右側のエディタ部分に以下を入力
.sh
#!/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 を押して完了
以上、何かしらの助けになれば幸いです!