ウェブサービスを作っています。

CircleCI 2.0 + circleci-bundle-update-pr で、自動 bundle update

昨日の続きで、CircleCI 2.0 を使い、毎日 bundle update を自動実行する設定例です。

circleci-bundle-update-pr という便利なツールを使用させてもらいます。

circleci-bundle-update-pr の README にも設定例は掲載されていますが、別の例ということで。

2017/12/01 現在の情報となります。

以下の例では、平日の日本時間午前 9:00 (UTC 0:00) に、ジョブを実行します。


.circleci/config.yml

ruby_image: &ruby_image
  circleci/ruby:2.4.2

bundle_cache_key: &bundle_cache_key
  bundle-{{ checksum "Gemfile.lock" }}

version: 2

jobs:
  build: (省略)

  ci-bundle-update:
    docker:
      - image: *ruby_image

    environment:
      TZ: "/usr/share/zoneinfo/Asia/Tokyo"

    steps:
      - checkout

      - restore_cache:
          key: *bundle_cache_key

      - run:
          name: circleci-bundle-update-pr
          command: |
            gem update bundler --no-document
            gem install circleci-bundle-update-pr
            bundle config --local path vendor/bundle
            circleci-bundle-update-pr

workflows:
  version: 2

  ci-bundle-update:
    triggers:
      - schedule:
          cron: "0 0 * * 1-5"  # UTC
          filters:
            branches:
              only: master

    jobs:
      - ci-bundle-update

あとは CircleCI のプロジェクト設定で、環境変数 GITHUB_ACCESS_TOKEN, GIT_USER_EMAIL, GIT_USER_NAME を設定します。