2015-03 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2015-03-03 (火)

継続的bundle updateを簡単に導入できるGemを作った [CircleCI][Ruby]

[2015-01-25-1]のバージョンアップ。

個人、会社含めて、複数リポジトリで継続的bundle updateを始めて一ヶ月。
汎用コードをGemに外出ししました。

https://rubygems.org/gems/circleci-bundle-update-pr

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へのリンクを貼っ
てくれます。

継続的bundle update PR

トリガーは[2015-01-25-1]で紹介したci-bundle-updateをどうぞ。
Herokuボタンで簡単に設置できます。

https://github.com/masutaka/ci-bundle-update

継続的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] を書きました。

Referrer (Inside): [2015-07-28-1]

2015-03 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

最終更新時間: 2015-08-29 16:28

検索


このブログのはてなブックマーク数
このブログのはてなブックマーク数
最近の話題
最近追記された記事
カテゴリ
過去ログ
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+