Jenkins on-mac
-
Upload
yuichi-takeda -
Category
Software
-
view
2.009 -
download
2
Transcript of Jenkins on-mac
Who?• Yuichi Takeda (@ginrou799)
• Works for 株式会社ミクシィ
• iPhone開発がメイン
• 年明けからスマホアプリ研修の公開版やるので良かったら参加してね!
弊社での運用• インストール・アップデート
• jarをダウンロードして起動
• Daemon化はlaunchctlで
• (今はhomebrewを使うほうが便利かも)
• 構成
• 4台のmac miniでmaster-slave 構成
XcodeやOSのアップデート
• 毎年の恒例行事
• iOS SDKも同時に更新されて突然ビルドが失敗する
• プロジェクトごとにXcodeやOSバージョンを選択
• xcode-select
• 一部のマシンのみ上げて検証する
GUIとVNC
• OS XのアプリケーションはGUIが使えることを 前提としたものが多い
• ということでGUIが操作できる環境が必要
• 席の近くに置いてく、遠隔地ならVNCが必須
• XcodeやOSのアップデートも例外でない
Yosemiteでslaveのjobが動かない
• Yosemiteをslaveにあげてjobを実行するとと出てテストに失敗する
• Travis CIでも同じトラブルがhttp://blog.travis-ci.com/2014-10-22-xcode-6-update-postmortem/
Test operation failure: Timed out waiting 120 seconds for simulator to boot, current state is 1.
Yosemiteでslaveのjobが動かない• 原因
• Jenkinsのslave jobはssh経由で実行
• MacのsshdがGUIを操作できない
• 解決策
• このissueで議論されてる https://github.com/facebook/xctool/issues/404
• JNLPを使う
• Userコンテキストでsshdを立てる (これで凌いでいます)
Jenkinsいいところ
履歴が残る
• 「こないだの申請どれでしたっけ?」が残る
• 「このビルドのリビジョンどれだっけ」が残る
秘密鍵の管理がしやすい
• 秘密鍵をインストールするマシンを限定してアクセスコントロール