version: 2.1 executors: ruby-executor: docker: - image: cimg/ruby:2.7 linux: docker: - image: cimg/ruby:2.7 mac: macos: xcode: 11.4 ruby: parameters: version: description: "version tag" default: "2.5" type: string docker: - image: cimg/ruby:<> defaults: &defaults executor: ruby major_only: &major_only filters: branches: only: master release: &release filters: branches: only: release commands: run-test-case: parameters: answers: type: string default: "1\n2" os: type: executor steps: - run: | rake install && printf "<< parameters.answers >>\ny\ny\ny\ny\ny\ny\ny$var\n" | roro rollon - run: echo 'success' jobs: build: <<: *defaults steps: - checkout test-against-ruby: parameters: version: description: "version tag" default: "3.0" type: string executor: name: ruby version: <> steps: - checkout - run: gem install bundler - run: bundle - run: bundle exec rake test test-rollon: parameters: answers: type: string default: "1\n4" os: type: executor default: linux executor: << parameters.os >> steps: - checkout - setup_remote_docker: version: 19.03.12 - run: | rake install && printf "<< parameters.answers >>\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny$var\n" | roro rollon - run: echo 'success' release: <<: *defaults steps: - checkout - run: | git config --global user.email "fred.schoeneman@gmail.com" git config --global user.name "Fred Schoeneman" - run: gem install gem-release - run: gem bump - run: gem release workflows: matrix-test-rollon: jobs: - test-rollon: <<: *major_only matrix: parameters: answers: ["1\n1", "1\n2", "1\n3", "1\n4", "1\n5", "2\n1", "3\n1", "3\n2"] os: [linux] matrix-test-against-rubies: jobs: - test-against-ruby: <<: *major_only matrix: parameters: version: [ "2.5", "2.6", "2.7", "3.0" ] gem-release: jobs: - build - release: requires: - build <<: *release