summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.circleci/config.yml170
-rw-r--r--Gemfile3
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
diff --git a/Gemfile b/Gemfile
index 5d0f7f2f..f33cfdd9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -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')