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

最終更新時間: 2020-04-05 23:39 JST

検索


最近の話題
- 2020-04-02
  NHK Eテレのテキシコーメモ
- 2020-03-26
  terraform を再帰的に実行する Makefile
- 2020-02-25
  スレッドセーフでない Dir.chdir の使用を RuboCop で禁止する
- 2020-01-22
  『AWSの薄い本 IAMのマニアックな話』を読んだ
- 2020-01-12
  『私はどのようにしてLinuxカーネルを学んだか』を読んだ
- 2019-12-20
  circleci/orb-tools を使った Orb のリリースフローが良く出来ていたので紹介する
- 2019-12-17
  Heroku 上での bundler version の決められ方
最近追記された記事
- 2014-11-02-2 (15日前)
- 2020-01-22-1 (21日前)
- 2019-02-11-1 (195日前)
- 2019-02-03-1 (195日前)
- 2019-01-28-1 (195日前)
- 2019-02-03-1 (237日前)
- 2018-11-28-1 (251日前)
- 2019-05-07-1 (331日前)
- 2018-04-30-1 (346日前)
- 2018-01-28-1 (358日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (24)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (109)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (11)
- 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 (21)
- 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 (24)
- 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 (54)
- 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)
- Terraform (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)
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 12
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