version: 2.1 orbs: pushover: masutaka/pushover@2 executors: default: parameters: ruby_version: type: enum enum: ['2.5', '2.6', '2.7', '3.0'] docker: - image: cimg/ruby:<< parameters.ruby_version >> working_directory: ~/repo commands: setup_requirements: steps: - run: name: Set timezone to Asia/Tokyo command: sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime restore_bundle_cache: parameters: ruby_version: type: enum enum: ['2.5', '2.6', '2.7', '3.0'] steps: - restore_cache: name: Restore bundle cache keys: - gems-ruby<< parameters.ruby_version >>-{{ .Environment.COMMON_CACHE_KEY }}-{{ checksum "Gemfile.lock" }} - gems-ruby<< parameters.ruby_version >>-{{ .Environment.COMMON_CACHE_KEY }}- save_bundle_cache: parameters: ruby_version: type: enum enum: ['2.5', '2.6', '2.7', '3.0'] steps: - save_cache: name: Save bundle cache key: gems-ruby<< parameters.ruby_version >>-{{ .Environment.COMMON_CACHE_KEY }}-{{ checksum "Gemfile.lock" }} paths: - ~/repo/vendor/bundle install_bundler: steps: - run: name: install bundler command: gem install -N bundler:1.17.3 # same version as Gemfile.lock jobs: build: parameters: ruby_version: type: enum enum: ['2.5', '2.6', '2.7', '3.0'] executor: name: default ruby_version: << parameters.ruby_version >> steps: - setup_requirements - checkout - restore_bundle_cache: ruby_version: << parameters.ruby_version >> - install_bundler - run: name: bundle install command: | bundle check || bundle install --jobs=4 --retry=3 --path=vendor/bundle bundle clean - save_bundle_cache: ruby_version: << parameters.ruby_version >> - run: bundle exec rubocop - run: bundle exec rspec - pushover/notify-on-failure continuous_bundle_update: executor: name: default ruby_version: '3.0' steps: - setup_requirements - checkout - restore_bundle_cache: ruby_version: '3.0' - install_bundler - run: name: Install edge circleci-bundle-update-pr command: | gem install -N specific_install gem specific_install https://github.com/masutaka/circleci-bundle-update-pr.git - deploy: name: Run circleci-bundle-update-pr command: circleci-bundle-update-pr CircleCI circleci@example.com $CIRCLE_BRANCH -d - pushover/notify-on-failure workflows: version: 2 ordinary: jobs: - build: name: ruby-2.5 ruby_version: '2.5' - build: name: ruby-2.6 ruby_version: '2.6' - build: name: ruby-2.7 ruby_version: '2.7' - build: name: ruby-3.0 ruby_version: '3.0' nightly: triggers: - schedule: cron: "00 10 1 * *" filters: branches: only: master jobs: - continuous_bundle_update