[2015-01-25-1] のバージョンアップ。
個人、会社含めて、複数リポジトリで継続的bundle updateを始めて一ヶ月。
汎用コードをGemに外出ししました。
circle.ymlで完結できるのでなかなか良さげです。ただし[2015-01-25-1]
のスクリプト部分をGem化しただけで、テストもなく、名前が安直です。
でもとりあえず動いています。
変更前後をご覧になると分かりますが、deploymentで
circleci-bundle-update-prを呼ぶだけで良くなりました。
◆変更前
https://gist.github.com/masutaka/d9bf91e22567753fe76b
◆変更後
https://gist.github.com/masutaka/8a01fe50e3917ca0b6d8
compare_linker
とも依存を付けたので、できるだけdiffへのリンクを貼っ
てくれます。
トリガーは[2015-01-25-1]
で紹介したci-build-triggerをどうぞ。
Herokuボタンで簡単に設置できます。
継続的bundle updateを始めて良いことだらけです。まずは小さなプロジェクト
から始めてみてはいかがでしょうか?
- 一週間でもそこそこ更新があることが分かる
- でもそんなに多くないから、気になったGemのdiffは読む気になる
- 思っていたよりテスト通らない。でも小さいからすぐ直せる
- 無意識だったbundle updateしなくちゃという心理的負担がなくなった
◆おまけ1
circleci-bundle-update-prでcompare_linkerを使う
ため、
@kyanny
さんからcompare_linkerのリリース許可を頂きました。
kyanny/compare_linker#31
にそのやりとりが残されています。
※ gemspecで依存を付けるGemのsourceはgithubやgitが使えなかったのですね。
今回初めて知りました。よく考えれば当たり前か。
◆おまけ2
circle.ymlでtest.overrideの途中などで抜けたいときはreturnでなくて、
exitします。サーバのCIではもっとロジックが多くて、以下のようなコー
ドがたくさん並びます。ださいけど今は仕方がない。
override:
- |
if [ -n "${BUNDLE_UPDATE}" ]; then
exit 0
fi
bundle exec rake spec:ec2
追記(2015-08-29):
保存版の記事 [2015-07-28-1]
を書きました。