世間はnpm互換のパッケージマネージャであるyarnで盛り上がっているようです。
ヘーシャではCircleCIでnpmなプロジェクトをいっぱいビルドしているので早速雑に試してみた。
circle.yml
とりあえずcircle.ymlはこんな感じ
machine:
node:
version: 4.6.0
post:
- curl -o- -L https://yarnpkg.com/install.sh | bash
dependencies:
cache_directories:
- "~/.yarn-cache"
pre:
- yarn --version
override:
- yarn install
test:
override:
- echo test
キャッシュディレクトリとして ~/.yarn-cache
を指定しておくのがミソ。
ちなみにyarn本体は ~/.yarn
ディレクトリにbinディレクトリも作成され、install.shの中のyarn_linkを実行することでPATHが通される。~/.yarn
をキャッシュするのも検討したが、PATHをexportしてもCircleCIだとコマンド毎にprofileを読み直すのでyarn: command not foundになる。ステップ毎にPATH通すのもダルいし。なのでやっぱりmachineフェーズの中で毎回ヤンヤンするで良さそう。
yarn感想
Yarn速かった
2016/11/24 追記
どうやらyarnのバージョンアップに伴い、yarn0.17系からキャッシュディレクトリが変更になったようです。
~/.yarn-cache/ を CI でキャッシュしてはいけない - Qiita
というわけで、circle.ymlもこのように変わりますね!
machine:
node:
version: 4.6.0
post:
- curl -o- -L https://yarnpkg.com/install.sh | bash
dependencies:
cache_directories:
- "~/.cache/yarn"
pre:
- yarn --version
override:
- yarn install
test:
override:
- echo test