diff options
-rw-r--r-- | .circleci/config.yml | 170 | ||||
-rw-r--r-- | Gemfile | 3 |
2 files changed, 170 insertions, 3 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..c30b937b --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,170 @@ +version: 2 +references: + repo_restore_cache: &repo_restore_cache + restore_cache: + keys: + - repo-{{ .Environment.CIRCLE_SHA1 }} + + repo_save_cache: &repo_save_cache + save_cache: + key: repo-{{ .Environment.CIRCLE_SHA1 }}-{{ epoch }} + paths: + - ~/pry + + bundle_install: &bundle_install + run: + name: Install Bundler dependencies + command: bundle install --path ~/pry/vendor/bundle --jobs 15 + + unit: &unit + run: + name: Run unit tests + command: bundle exec rake + environment: + # Make sure TERM is set so Pry can indent correctly inside tests. + TERM: screen-256color + + install_alpine_nano: &install_alpine_nano + run: + name: Install Nano text editor on Alpine Linux + command: apk add nano + + install_ubuntu_nano: &install_ubuntu_nano + run: + name: Install Nano text editor on Ubuntu + command: sudo apt-get install nano + +jobs: + rubocop_lint: + docker: + - image: circleci/ruby:2.5 + working_directory: ~/pry + steps: + - checkout + - <<: *repo_save_cache + - <<: *bundle_install + - run: + name: Run RuboCop linting + command: bundle exec rubocop --parallel + yard_lint: + docker: + - image: circleci/ruby:2.5 + working_directory: ~/pry + steps: + - checkout + - <<: *repo_save_cache + - <<: *bundle_install + - run: + name: Run YARD linting + command: bundle exec yardoc --fail-on-warning --no-progress + "ruby-1.9": + docker: + - image: kyrylo/ruby-1.9.3p551 + working_directory: /home/circleci/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_alpine_nano + - <<: *unit + "ruby-2.0": + docker: + - image: kyrylo/ruby-2.0.0p648 + working_directory: /home/circleci/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_alpine_nano + - <<: *unit + "ruby-2.1": + docker: + - image: circleci/ruby:2.1 + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + "ruby-2.2": + docker: + - image: circleci/ruby:2.2 + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + "ruby-2.3": + docker: + - image: circleci/ruby:2.3 + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + "ruby-2.4": + docker: + - image: circleci/ruby:2.4 + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + "ruby-2.5": + docker: + - image: circleci/ruby:2.5 + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + "jruby-9.1-jdk": + docker: + - image: circleci/jruby:9.1-jdk + working_directory: ~/pry + steps: + - <<: *repo_restore_cache + - <<: *bundle_install + - <<: *install_ubuntu_nano + - <<: *unit + +workflows: + version: 2 + build: + jobs: + - rubocop_lint + - yard_lint + - "ruby-1.9": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.0": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.1": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.2": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.3": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.4": + requires: + - rubocop_lint + - yard_lint + - "ruby-2.5": + requires: + - rubocop_lint + - yard_lint + - "jruby-9.1-jdk": + requires: + - rubocop_lint + - yard_lint @@ -2,12 +2,9 @@ source 'https://rubygems.org' gemspec gem 'rake', '~> 10.0' -# For Guard group :development do gem 'gist' gem 'yard' - gem 'rb-inotify', require: false - gem 'rb-fsevent', require: false # Rubocop supports only >=2.2.0 if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.2.0') |