Skip to content

Instantly share code, notes, and snippets.

@nolili
Last active August 29, 2015 14:05
Show Gist options
  • Select an option

  • Save nolili/122c5a524761dbbf613d to your computer and use it in GitHub Desktop.

Select an option

Save nolili/122c5a524761dbbf613d to your computer and use it in GitHub Desktop.
Travis CI メモ
Travis CI メモ
オープンソース向けのCIツール
githubからソースをpull、スクリプトを動作させ、結果を通知する。
Xcodeのプロジェクトがビルドできる。(OS XのVMが走っている?未確認)
Publicリポジトリであれば無料。
https://travis-ci.org
Privateリポジトリを扱う場合は、有料のプラン契約が必要。
月額129USD(13000JPY程度)
どのような処理を行うかは、リポジトリのルートに.travis.ymlファイルを作成して定義する。
プラットフォーム・言語、ビルド前のスクリプト、ビルドスクリプト、ビルド後のスクリプトを定義する。
iOSのアプリをビルドするには、秘密鍵、証明書、プロビジョニング・プロファイルが必要だが、これらのファイルをリポジトリにaddしてpushすると、公開されてしまい、非常に危険。
また、ビルドログも公開されてしまうので、扱いに注意が必要。
公開されたくない文字列(秘密鍵のパスワード、APIキー、サーバのパスワードなど)は、travis encryptコマンドを使用して、暗号化する。
https://github.com/travis-ci/travis.rb#encrypt
また、公開したくないファイルは同様にtravis encrypt-file コマンド、またはopensslを使用して暗号化する。
https://github.com/travis-ci/travis.rb#encrypt-file
iOSアプリのビルド自動化は簡単ではない。シェルの操作、ビルドスクリプト、公開鍵/秘密鍵など複数の知識が必要になる。
現在使用しているスクリプト
ビルド前のスクリプト
暗号化したプロビジョニング・プロファイル、秘密鍵、公開鍵を復号する。
復号したファイルをキーチェーンに登録する。また、プロビジョニング・プロファイルをライブラリに追加する。
キーチェーンは3600秒経過後、破棄する。
ビルドスクリプト
アプリをリリース構成でビルドする。ターゲットはiOS Devicesにする。
ビルドにはxctool(Facebookが配布しているxcodebuildのwrapper)を使用する。
- xctool -workspace HelloCI.xcodeproj/project.xcworkspace -scheme HelloCI sdk iphoneos
-configuration Release OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO
ビルド後のスクリプト
dSYMファイル(デバッグ・シンボル)をzipに固める。
appファイルにプロビジョニング・プロファイルを埋め込み、ipaファイルを生成する。
TestflightにipaとdSYMをアップロードする。TestflightのAPIキーは暗号化しておく。
Yoを送る。YoのAPIキーは暗号化しておく。
通知
Hipchatに通知を送信する。
Hipchatのチャットルーム、APIキーは暗号化しておく。
travis encrypt api_token@room_name --add notifications.hipchat.rooms
学習用に作ったリポジトリ
https://github.com/nolili/HelloCI
参考URL
Travis CI for iOS
http://www.objc.io/issue-6/travis-ci.html
Configuring Build Notifications
http://docs.travis-ci.com/user/notifications/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment