くりにっき

フルスタックキュアエンジニアです

circleci-ruby-orbs v1.4.0をリリースした

リリースノート

https://github.com/sue445/circleci-ruby-orbs/blob/master/CHANGELOG.md#v140

今まで Gemfile.lock がコミットされているリポジトリでしか使えませんでしたが、v1.4.0ではgemのように Gemfile.lock をコミットしていないリポジトリに対応しました!

使い方

Gemfile.lock をコミットしていない場合、ruuby-orbs/bundle-install の引数に with_gemfile_lockgemspec_name を渡してください。

# .circleci/config.yml
jobs:
  rspec:
    docker:
      - image: circleci/ruby

    steps:
      - checkout

      - ruby-orbs/bundle-install:
          with_gemfile_lock: false
          gemspec_name: "yourgem"
      # or
      - ruby-orbs/bundle-install:
          cache_key_prefix: "v1-bundle"
          bundle_jobs: 4
          bundle_retry: 3
          bundle_path: "vendor/bundle"
          with_gemfile_lock: false
          gemspec_name: "yourgem"
          bundle_clean: true
          bundle_extra_args: ""

      # Add your job (e.g. rspec, rubocop)
      - run: bundle exec rspec

エピソード

今回の実装自体はサクッといったのですが、orbのインテグレーションテストが謎のエラー *1 で失敗するという事象にハマっていました。

CircleCIのバグのような挙動だったので最終的にバグレポートを上げてバグを修正してもらい、ようやくv1.4.0をリリースできました。

discuss.circleci.com

余談

https://circleci.com/orbs/registry/ がPopular*2でソートできるようになっていたのですが、sue445/ruby-orbsが3rdパーティ製のorbの中で上から3番目でした!

f:id:sue445:20190124233153p:plain

ただし自分の上にいるiynereとeddiewebbはCircleCIの社員なので、社員製のorbを除けばsue445/ruby-orbsが実質1番ですw

*1:1つのorbの中でconditional stepsをたくさん定義してた時にビルド時にエラーになる

*2:プロジェクトからの参照数かビルドでの実行数辺りだとは思うけど不明