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

検索


最近の話題
- 2021-01-22
  pushover orb のメンテナーになった
- 2021-01-16
  tfupdate orb の circleci/orb-tools を v8.27.5 から v10.0.3 にアップデートした
- 2021-01-05
  思考を寝かせて、優先順位を決めるための「やるかもしれないリスト」がとてもうまくワークしている
- 2020-12-20
  『データマネジメントが30分でわかる本』を読んだ
- 2020-12-03
  優先度より優先順位のほうが偉い
- 2020-11-10
  『理論から学ぶデータベース実践入門』を読んだ
- 2020-10-30
  CircleCI の旧 UI で設定した Slack Integration の設定を確認も変更も削除もできない件への対応方法
最近追記された記事
- 2014-11-02-2 (307日前)
- 2020-01-22-1 (313日前)
- 2019-02-11-1 (487日前)
- 2019-02-03-1 (487日前)
- 2019-01-28-1 (487日前)
- 2019-02-03-1 (529日前)
- 2018-11-28-1 (543日前)
- 2019-05-07-1 (623日前)
- 2018-04-30-1 (638日前)
- 2018-01-28-1 (650日前)
カテゴリ
- Android (2)
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (24)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (111)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (15)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (5)
- E-mail (9)
- elasticsearch (4)
- Emacs (225)
- 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 (7)
- Heroku (21)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iOS (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 (4)
- 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)
- 勉強会 (19)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2021 : 01 02 03 04 05 06 07 08 09 10 11 12
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