Jenkins CIのAdvent Calendar 18日目。
言い出しっぺなのに、特にネタが思い浮かばず。
GitHubに公開してるアプリケーションの解説をいたします。
morodomi/Install-APK-and-IPA
このアプリケーションは内部ネットワーク経由でIPAやAPKをインストールする為に適当に作りました。
社内で開発中のバイナリはTestFlightがいくら安全といえども、
社外にバイナリを置くこと自体があまり安全とは言えません。
しかし、アプリ開発者としては、運営者に、
最新のビルドを勝手にインストールしておいて欲しいんですよ。
なんせ、Jenkinsからapkやipaを落として、
端末をケーブルに繋いで、
インストールして、
はい、出来ました〜ってやるのは凄い面倒なので。
Yahoo!ニュースを読んだり、
Facebookを読んだり、
Tweetしたり、
暇だなぁと思いながらコードのリファクタリングしたり。
などなどの時間が取れなくなってしまうのです。
一応、まったく同じソースでは無いですが、
このままの形で運営中で、運営さんからは大変好評です。
運営さんも、エンジニアの手を止めるのは悪いと思っているはずなので、
お互いに無駄な時間を減らす事は、大いに効率改善に繋がると思います。
で、解説ですが、
このアプリでは、app.jsを見てもらえば分かりますが、5ルート用意してあります。
app.get('/', routes.index); app.get('/builds/:project', routes.builds); app.get('/apps/:project/:build', routes.apps); app.get('/plist/:project/:build/:app', routes.plist); app.get('/apk/:project/:build/:app', routes.apk);
buildsは、指定したプロジェクトのビルド番号リストの取得
appsは、作成結果の.ipaや.apkファイルを取得
plistは、ipaをインストールする為のplistを取得
apkは、apkファイルのURLを指定です。
routes/index.jsには、プロジェクト名を指定します。
プルダウンリストから、プロジェクト名を指定すると、
ajaxで、プロジェクトのビルド番号のリストを取得し、次のプルダウンに置かれます。
ビルド番号リストを選択すると、これまたajaxで、
アプリ一覧を取得して、下に表示させます。
こちらは、ipaとapk両方表示させます。
(UAとかで判別したいなぁと思いながら、面倒なのでそのまま)
さらに、アプリを選択すると、
ipaならplistを、apkならそのままJenkinsのURLをクリックする事になり、
DLが可能という訳です。
plilstは、ipaを解凍して、中身のplistを読み込んでいます。
これで、簡単にインストール出来るようになりました。
Pull Requestお待ちしております。
0 件のコメント:
コメントを投稿