# Use the latest 2.1 version of CircleCI pipeline process engine. # See: https://circleci.com/docs/2.0/configuration-reference version: 2.1 # Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects. # See: https://circleci.com/docs/2.0/orb-intro/ orbs: ruby: circleci/ruby@0.1.2 coveralls: coveralls/coveralls@1.0.6 node: circleci/node@5.0.0 # Define a job to be invoked later in a workflow. # See: https://circleci.com/docs/2.0/configuration-reference/#jobs jobs: build: parameters: ruby_version: type: string rails_version: type: string faraday_version: type: string docker: - image: cimg/ruby:<< parameters.ruby_version >> executor: ruby/default environment: RAILS_TEST_VERSION: << parameters.rails_version >> FARADAY_TEST_VERSION: << parameters.faraday_version >> EUID: 0 # not sure why this is needed, but sudo npm fails steps: - checkout - run: name: Which ruby? command: ruby -v - run: name: Which bundler? command: bundle -v - ruby/bundle-install - run: name: Run tests command: bundle exec rake - node/install: node-version: 10.0.0 - coveralls/upload: parallel: true coverage: docker: - image: circleci/node:10.0.0 steps: - coveralls/upload: parallel_finished: true workflows: tests: jobs: - build: matrix: alias: Rails 4 parameters: rails_version: ["~> 4.0"] ruby_version: ["2.6.9"] faraday_version: ["< 2.0"] - build: matrix: alias: Rails 5 parameters: rails_version: ["~> 5.0"] ruby_version: ["2.6.9", "2.7.5"] faraday_version: ["< 2.0", ">= 2.0"] - build: matrix: alias: Rails 6 parameters: rails_version: ["~> 6.0"] ruby_version: ["2.6.9", "2.7.5", "3.0.3"] faraday_version: ["< 2.0", ">= 2.0"] - build: matrix: alias: Rails 7 parameters: rails_version: ["~> 7.0"] ruby_version: ["2.7.5", "3.0.3", "3.1.1", "3.2.0"] faraday_version: ["< 2.0", ">= 2.0"] - coverage: requires: ["Rails 4", "Rails 5", "Rails 6", "Rails 7"]