Upgrade to Pro — share decks privately, control downloads, hide ads and more …

fastlaneの実プロダクトへの導入例と所感

rbde0
February 21, 2017

 fastlaneの実プロダクトへの導入例と所感

rbde0

February 21, 2017
Tweet

More Decks by rbde0

Other Decks in Programming

Transcript

  1. fastlane 導入前のCI 環境 Jenkins Xcode Plugin で ビルド & ユニットテスト

    S3 へipa をアップロー ドするジョブを使ってデプロイ シェルスクリプトでゴリゴリやっていた 対象のサー バー が落ちると全ジョブに影響 よくわからないのでコピペして使っていた 特に大きな問題はなかった... かな 5
  2. 6

  3. AKIBA.swift 第6 回 fastlane ハンズオン にて fastlane 流行ってるっぽいしとりあえず参加 ↓ ハンズオンで

    gym, scan あたりを教えてもらい試す ↓ 次の日会社で色々 触ってみる。 アクション多いし簡単だしよさげだなー ↓ 次のプロジェクトではfastlane 導入してみよう 7
  4. ユニットテスト lane d e s c " ユニットテスト" l a

    n e : t e s t d o c o c o a p o d s c a r t h a g e _ u p d a t e # 別のl a n e s c a n ( s c h e m e : " s c h e m e の名前" , d e v i c e s : [ " i P h o n e 7 " ] ) s l a c k ( m e s s a g e : " テストO K ! ! & r e p o r t . h t m l のパス等" ) e n d 11
  5. ユニットテスト エラー 時 e r r o r d o

    | l a n e , e x c e p t i o n | c a s e l a n e w h e n : t e s t t h e n s l a c k ( m e s s a g e : " テストダメです. . . & r e p o r t . h t m l のパス等" ) e n d e n d exception の中身を渡したほうがいいかも... 12
  6. 配信 lane d e s c " 開発用エンター プライズi p

    a をC r a s h l y t i c s にアップロー ドする" l a n e : d e p l o y d o c o c o a p o d s c a r t h a g e _ u p d a t e # 別のl a n e g y m ( s c h e m e : " s c h e m e 名" , c o n f i g u r a t i o n : " R e l e a s e " , u s e _ l e g a c y _ b u i l d _ a p i : t r u e ) c r a s h l y t i c s ( 本当はいろいろある) s l a c k ( m e s s a g e : " アップロー ド成功, メー ルを確認してください" ) e n d 15
  7. バー ジョンアップ lane d e s c " b u

    i l d n u m b e r を更新してg i t h u b にp u s h する" l a n e : u p d a t e _ v e r s i o n d o b u i l d _ n u m b e r = g e t _ b u i l d _ n u m b e r a p p _ v e r s i o n = b u i l d _ n u m b e r . s p l i t ( " . " ) . t a k e ( 3 ) n e x t _ v e r s i o n = ( b u i l d _ n u m b e r . s p l i t ( " . " ) . l a s t . t o _ i + n e x t _ b u i l d _ n u m b e r = a p p _ v e r s i o n . p u s h ( n e x t _ v e r s i o n ) . j o i n i n c r e m e n t _ b u i l d _ n u m b e r ( b u i l d _ n u m b e r : n e x t _ b u i l d _ n u m b e r ) c o m m i t _ v e r s i o n _ b u m p ( m e s s a g e : " i n c r e m e n t _ b u i l d _ n u m b e r " , x c o d e p r o j : " x x x x . x c o d e p r o j " ) a d d _ g i t _ t a g ( t a g : n e x t _ b u i l d _ n u m b e r ) p u s h _ t o _ g i t _ r e m o t e ( f o r c e : t r u e , t a g s : t r u e ) e n d Ruby わからん... 17
  8. carthage_cache plugin fastlane のプラグイン carthage のフレー ムワー ク群をアー カイブしてs3 にキャッシュ

    Cartfile.resolved をハッシュ化してファイル名にしている $ b u n d l e e x e f a s t l a n e a d d _ p l u g i n c a r t h a g e _ c a c h e で追加 19
  9. あればダウンロー ドして展開、 なければbootstrap して更新するよう にする フレー ムワー ク消しちゃってもS3 からダウンロー ドできる

    d e s c " C a r t h a g e 周りの依存関係解決" l a n e : c a r t h a g e _ u p d a t e d o i s _ e x i s t = c a r t h a g e _ c a c h e _ e x i s t ( b u c k e t : ' b u c k e t - n a m e ' ) i f i s _ e x i s t t h e n c a r t h a g e _ c a c h e _ i n s t a l l ( b u c k e t : ' b u c k e t - n a m e ' ) e l s e c a r t h a g e ( p l a t f o r m : " i O S " ) c a r t h a g e _ c a c h e _ p u b l i s h ( b u c k e t : ' b u c k e t - n a m e ' ) e n d e n d 20
  10. Jenkins のジョブについて 独自スクリプトを作らず、 できるだけFastfile に処理を書くようにす る シェルスクリプトにはなるべく、Bundle のインストー ルと環境変数 の設定、fastlane

    の実行のみを書くようにする $ e x p o r t $ b u n d l e i n s t a l l - - p a t h . b u n d l e $ b u n d l e e x e f a s t l a n e [ l a n e _ n a m e ] 21