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に外出ししました。

circleci-bundle-update-pr | RubyGems.org | your community gem host

RubyGems.org is the Ruby community's gem hosting service. Instantly publish your gems and install them. Use the API to interact and find out more information about available gems. Become a contributor and enhance the site with your own changes.



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-build-triggerをどうぞ。
Herokuボタンで簡単に設置できます。

masutaka/ci-build-trigger

A trigger of 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] を書きました。

この記事に言及しているこのブログ内の記事

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

最終更新時間: 2019-09-18 00:02 JST

検索


最近の話題
- 2019-08-16
  『改訂2版 みんなのGo言語』を読んだ
- 2019-08-13
  『カード決済業務のすべて』を読んだ
  『実行力 結果を出す「仕組み」の作りかた』を読んだ
- 2019-08-05
  Heroku Logging Add-on Papertrail と LogDNA の比較
- 2019-07-16
  ジム通いと食生活改善が 13 ヶ月目に突入した
- 2019-06-10
  esa の記事を Emacs から素早く開ける helm-esa.el を作った
- 2019-06-03
  CaSy のエアコンクリーニングサービスを使った
- 2019-05-28
  『アフターデジタル』を読んだ
最近追記された記事
- 2019-02-03-1 (37日前)
- 2018-11-28-1 (51日前)
- 2019-05-07-1 (131日前)
- 2018-04-30-1 (146日前)
- 2018-01-28-1 (158日前)
- 2019-02-11-1 (218日前)
- 2019-01-20-1 (236日前)
- 2016-10-26-1 (284日前)
- 2018-10-15-1 (331日前)
- 2018-04-30-1 (359日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (23)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (106)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (4)
- E-mail (9)
- elasticsearch (4)
- Emacs (223)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (2)
- Game (21)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (23)
- golang (11)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (6)
- Heroku (19)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPad (1)
- iPhone (17)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (23)
- Linux (7)
- Mackerel (1)
- macOS (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (13)
- Rake (2)
- RaspberryPi (2)
- Redash (1)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (52)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (15)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (26)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (17)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
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