読者です 読者をやめる 読者になる 読者になる

CircleCIでyarnを使う

世間はnpm互換のパッケージマネージャであるyarnで盛り上がっているようです。

github.com

ヘーシャではCircleCIでnpmなプロジェクトをいっぱいビルドしているので早速雑に試してみた。

github.com

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系からキャッシュディレクトリが変更になったようです。

qiita.com

というわけで、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