--- version: 2.1 references: bundle_install: &bundle_install run: name: Bundle command: | gem install bundler --no-document && \ bundle config set no-cache 'true' && \ bundle config set jobs '4' && \ bundle config set retry '3' && \ bundle install cache_bundle: &cache_bundle save_cache: key: bundle-<< parameters.ruby_version >>-<< parameters.rails_version >>-{{ checksum "coach.gemspec" }}-{{ checksum "Gemfile" }} paths: - vendor/bundle restore_bundle: &restore_bundle restore_cache: key: bundle-<< parameters.ruby_version >>-<< parameters.rails_version >>-{{ checksum "coach.gemspec" }}-{{ checksum "Gemfile" }} jobs: rspec: working_directory: /mnt/ramdisk parameters: ruby_version: type: string rails_version: type: string docker: - image: cimg/ruby:<< parameters.ruby_version >> environment: CIRCLE_TEST_REPORTS: /tmp/circle_artifacts/ steps: - add_ssh_keys - checkout - *restore_bundle - *bundle_install - *cache_bundle - run: name: Run specs command: | bundle exec rspec $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings) --profile --format progress --format RspecJunitFormatter -o /tmp/circle_artifacts/rspec.xml - run: name: "Rubocop" command: bundle exec rubocop --extra-details --display-style-guide --parallel --force-exclusion - store_artifacts: path: /tmp/circle_artifacts/ - store_test_results: path: /tmp/circle_artifacts/ workflows: version: 2 tests: jobs: - rspec: matrix: parameters: ruby_version: ["2.6", "2.7", "3.0"] rails_version: ["5.2.6", "6.0.4", "6.1.4"]