version: 2.1 orbs: pushover: masutaka/pushover@2 executors: default: parameters: ruby_version: type: enum enum: ['2.7', '3.0', '3.1', '3.2'] 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.7', '3.0', '3.1', '3.2'] 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.7', '3.0', '3.1', '3.2'] steps: - save_cache: name: Save bundle cache key: gems-ruby<< parameters.ruby_version >>-{{ .Environment.COMMON_CACHE_KEY }}-{{ checksum "Gemfile.lock" }} paths: - ~/repo/vendor/bundle jobs: build: parameters: ruby_version: type: enum enum: ['2.7', '3.0', '3.1', '3.2'] executor: name: default ruby_version: << parameters.ruby_version >> steps: - setup_requirements - checkout - restore_bundle_cache: ruby_version: << parameters.ruby_version >> - run: name: bundle install command: | bundle config set --local path vendor/bundle bundle check || bundle install --jobs=4 --retry=3 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.2' steps: - setup_requirements - checkout - restore_bundle_cache: ruby_version: '3.2' - 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.7 ruby_version: '2.7' - build: name: ruby-3.0 ruby_version: '3.0' - build: name: ruby-3.1 ruby_version: '3.1' - build: name: ruby-3.2 ruby_version: '3.2' nightly: triggers: - schedule: cron: "00 10 1 * *" filters: branches: only: master jobs: - continuous_bundle_update