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

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

Avatar for rbde0 rbde0
February 21, 2017

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

Avatar for rbde0

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