やぎすけ Advent Calendar 2016 - Adventar
14日目です。大半がやぎにいなのでプレッシャァ。
遅い
無料のci serviceに言う文句じゃない気もしますが、とにかくtestがpassするまでの時間が長いと感じていました。
たとえばRubyの2.3.3など、わりと新しめのversionを使おうとすると毎回インストールを実行するので時間がかかります。
そこでwerckerを選択しました。werckerはciを実行する環境がdocker containerの中になるので、適切なcontainerを 選んでやれば環境構築の手間は最低限で済みます。
こちらになります。
box: ruby:2.3.3
init:
build:
steps:
- install-packages:
packages: nodejs
- bundle-install
- script:
name: middleman build
code: bundle exec middleman build
deploy:
steps:
- install-packages:
packages: nodejs rsync
- bundle-install
- add-ssh-key:
host: unasuke.com
keyname: deploy
- add-to-known_hosts:
hostname: unasuke.com
fingerprint: $FINGERPRINT
- script:
name: middleman build
code: bundle exec middleman build
- script:
name: middleman deploy
code: bundle exec middleman deploy
master branchでciが実行された場合は、deploy
pipelineが実行されるようにしています。
deployが発生しない、通常のciが終わるまでに要した時間を適当に5つ抜き出してみました。
だいたい3分間といったところ。
ほぼ1分間という感じ。
deployが発生する場合に、deploy終了までどれだけの時間を要したかを適当に5つ抜き出してみました。
これもだいたい3分から4分の間。1回だけ13:06かかったことがあり謎。
werckerに移行してからあまりdeployしてないのでサンプルが少ないですが、早くなっています。