Carthage を使用しているプロジェクトでの Travis CI

Carthage を使用しているプロジェクトでの Travis CI

前回 Circle CI を設定してみたが、Cache の考え方おんなじじゃね? Travis CI でも使えんじゃね?と思ったので試してみた。

Travis CI

こちらはCircle CI と違って OSS なら無料で使用できる。GitHub の Public リポジトリなら料金がかからない。
ちょっと前まで OSS で使うなら travis.org、有償版は travis.com と使い分けが必要だったが、どちらも travis.com に 統合された模様

ここ から Open Source を選べば良い。

.travis.yml

前回の Circle CI 設定時に作成したスクリプトをこちらでも使用する。

bootstrap

#!/bin/sh

carthage bootstrap --platform iOS --no-use-binaries
cp Cartfile.resolved Carthage

bootstrap-if-needed

#!/bin/sh

if ! cmp -s Cartfile.resolved Carthage/Cartfile.resolved; then
  bin/bootstrap
fi

YAMLのcacheにdirectoriesを指定してやると、キャッシュしてくれる。上記スクリプトを実行することで、Cartfile.resolved に変更がない限りはその後の実行時にはキャッシュを使用してくれる。

osx_image: xcode9.3
language: objective-c
cache:
  directories:
  - Pods
  - Carthage
before_install:
  - bin/bootstrap-if-needed
script:
    - fastlane action swiftlint
    - fastlane scan --project "RxSwiftRailsTutorial.xcodeproj" --scheme "RxSwiftRailsTutorial" -- device "iPhone X" --clean

15分ぐらいかかっていたのが2、3分に短縮できた。