From 5ee222c40ea18964f524c3d9f183b98d600b37b7 Mon Sep 17 00:00:00 2001 From: Benjamin Quorning Date: Mon, 27 Apr 2020 21:43:25 +0200 Subject: [PATCH] Use CircleCI matrix feature CircleCI recently added a feature for a workflow to configure a matrix of jobs to run. This allows us to remove a lot of duplicated configuration. --- .circleci/config.yml | 90 +++++++++++++------------------------------- 1 file changed, 27 insertions(+), 63 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 12245ac36..14a81454c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,16 +1,4 @@ -version: 2 - -rspec: &rspec - steps: - - checkout - - run: bundle install - - run: rake spec - -rubocop: &rubocop - steps: - - checkout - - run: bundle install - - run: rake internal_investigation +version: 2.1 jobs: confirm_config_and_documentation: @@ -21,45 +9,27 @@ jobs: - run: bundle install - run: rake confirm_config documentation_syntax_check confirm_documentation - # Ruby 2.4 - ruby-2.4-rspec: - docker: - - image: circleci/ruby:2.4 - <<: *rspec - ruby-2.4-rubocop: - docker: - - image: circleci/ruby:2.4 - <<: *rubocop - - # Ruby 2.5 - ruby-2.5-rspec: - docker: - - image: circleci/ruby:2.5 - <<: *rspec - ruby-2.5-rubocop: - docker: - - image: circleci/ruby:2.5 - <<: *rubocop - - # Ruby 2.6 - ruby-2.6-rspec: - docker: - - image: circleci/ruby:2.6 - <<: *rspec - ruby-2.6-rubocop: + rspec: + parameters: + ruby: + type: string docker: - - image: circleci/ruby:2.6 - <<: *rubocop + - image: circleci/ruby:<> + steps: + - checkout + - run: bundle install + - run: rake spec - # Ruby 2.7 - ruby-2.7-rspec: - docker: - - image: circleci/ruby:2.7 - <<: *rspec - ruby-2.7-rubocop: + rubocop: + parameters: + ruby: + type: string docker: - - image: circleci/ruby:2.7 - <<: *rubocop + - image: circleci/ruby:<> + steps: + - checkout + - run: bundle install + - run: rake internal_investigation edge-rubocop: docker: @@ -118,22 +88,16 @@ workflows: - confirm_config_and_documentation # Use `requires: [confirm_config_and_documentation]` to trick Circle CI into starting the slow jruby job early. - - ruby-2.4-rspec: - requires: [confirm_config_and_documentation] - - ruby-2.4-rubocop: - requires: [confirm_config_and_documentation] - - ruby-2.5-rspec: - requires: [confirm_config_and_documentation] - - ruby-2.5-rubocop: - requires: [confirm_config_and_documentation] - - ruby-2.6-rspec: - requires: [confirm_config_and_documentation] - - ruby-2.6-rubocop: - requires: [confirm_config_and_documentation] - - ruby-2.7-rspec: + - rspec: requires: [confirm_config_and_documentation] - - ruby-2.7-rubocop: + matrix: + parameters: + ruby: ['2.4', '2.5', '2.6', '2.7'] + - rubocop: requires: [confirm_config_and_documentation] + matrix: + parameters: + ruby: ['2.4', '2.5', '2.6', '2.7'] - edge-rubocop: requires: [confirm_config_and_documentation] - jruby