Edited at

BitriseでCarthageのビルド成果物をキャッシュする

More than 1 year has passed since last update.


はじめに

BitriseでCarthageビルド,および成果物のキャッシュを行うようにしたので手順等をメモ


  • 経緯


    • Carthageのビルド成果物をリポジトリに含めて運用していた

    • Xcode9.3(Swift4.1)に移行してビルドしたところ,100MBを超えるファイルが生成され,GitHubにpushできなくなった

    • もともとBitriseのワークフローは整備してあったので,その中でCarthageをビルド/キャッシュするようにした






設定方法

※ あらかじめ,基本的なiOSのビルド用Workflowは策定済みであるものとする

以下の3つのStepを追加

1. Cache:pull

2. Carthage

3. Cache:push


Cache:pull の追加


  • 挿入箇所: Git clone 以降



    • Git clone stepの直後でなくても問題はない



  • オプション: 特にいじらなくてOK


Carthage の追加


  • 挿入箇所: Cache:pull 以降

  • オプション:


    • Command: bootstrapを選択



      • updateではキャッシュがある場合にビルドできなかった



    • Options: 必要であれば以下のように設定


      • 設定例: realm-cocoa --platform ios --no-use-binaries
        スクリーンショット 2018-05-28 17.44.10.png





:pencil: Carthage Stepではなく Script StepでCarthageのビルドを行った場合は成果物をキャッシュできない模様


Cache:push の追加


  • 挿入箇所: 全Stepの最後


    • キャッシュ対象がCarthageのビルド成果物だけならCarthageの直後でもいいかも?(未確認)



  • オプション:


    • Cache paths: ./Carthage -> ./Carthage/Cachefile


      • Carthageディレクトリがリポジトリのルートにない場合は適宜パスを変更






その他


キャッシュファイルの参照・管理


  • Project > Settings > Manage Build Cachesから参照可能.
    スクリーンショット 2018-05-28 17.45.50.png


    • キャッシュの削除のほかダウンロードもできる.

    • キャッシュファイルはappごとに管理されており,別のWorkflowでキャッシュしたものがあればそれを利用可能(検証用のAdHocビルド時に生成されたキャッシュをAppStore用ビルドで使う,など).




ビルド時間への影響

キャッシュ(今回の計測時は1.35GB)を利用した場合,あらかじめリポジトリに含めておいたビルド成果物を利用した場合に比べ,ビルド時間は約2分増加.