diff --git a/.circleci/config.yml b/.circleci/config.yml index 9086601..6eacf84 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,11 +55,16 @@ jobs: docker: - image: circleci/ruby:2.5-node-browsers - image: circleci/mongo - build: + ruby-2.6: <<: *build_config docker: - image: circleci/ruby:2.6-node-browsers - image: circleci/mongo + ruby-2.7: + <<: *build_config + docker: + - image: circleci/ruby:2.7-node-browsers + - image: circleci/mongo workflows: version: 2 @@ -67,4 +72,5 @@ workflows: jobs: - ruby-2.4 - ruby-2.5 - - build + - ruby-2.6 + - ruby-2.7 diff --git a/Appraisals b/Appraisals index 14db46d..7fc457b 100644 --- a/Appraisals +++ b/Appraisals @@ -1,12 +1,25 @@ # frozen_string_literal: true -appraise 'sqlite3' do - gem 'rails', '~> 5.2' - gem 'sqlite3' +appraise 'rails_5_2_sqlite3' do + gem 'rails', '5.2.4.4' + gem 'sqlite3', '~> 1.3.6' end -appraise 'mongodb' do - gem 'rails', '~> 5.2' - gem 'mongoid' - gem 'bson_ext' +if Gem::Requirement.new('>= 2.5.0').satisfied_by?(Gem::Version.new(RUBY_VERSION)) + appraise 'rails_6_0_sqlite3' do + gem 'rails', '6.0.3.4' + gem 'sqlite3', '~> 1.4' + end +end + +appraise 'rails_5_2_mongodb' do + gem 'rails', '5.2.4.4' + gem 'mongoid', '6.4' +end + +if Gem::Requirement.new('>= 2.5.0').satisfied_by?(Gem::Version.new(RUBY_VERSION)) + appraise 'rails_6_0_mongodb' do + gem 'rails', '6.0.3.4' + gem 'mongoid', '7.2' + end end diff --git a/bin/setup b/bin/setup index 44a17a1..f7a7c4f 100755 --- a/bin/setup +++ b/bin/setup @@ -6,8 +6,8 @@ set -e DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" echo "Installing dependencies" -gem install bundler --conservative -bundle check || bundle install + +bundle check || bundle install --jobs=3 --retry=3 bundle exec appraisal install diff --git a/devise_2fa.gemspec b/devise_2fa.gemspec index 51ea539..dd83dc1 100644 --- a/devise_2fa.gemspec +++ b/devise_2fa.gemspec @@ -18,7 +18,9 @@ Gem::Specification.new do |gem| gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.require_paths = ['lib'] - gem.add_dependency "rails", ">= 4.1", "< 6.1" + gem.required_ruby_version = '>= 2.4.0' + + gem.add_dependency 'rails', '>= 5', '< 6.1' gem.add_runtime_dependency 'devise', '~> 4.6' gem.add_runtime_dependency 'rotp', '~> 5.1' diff --git a/spec/dummy/config/application.rb b/spec/dummy/config/application.rb index 3c23b9d..a5e2c73 100644 --- a/spec/dummy/config/application.rb +++ b/spec/dummy/config/application.rb @@ -16,9 +16,9 @@ module Dummy class Application < Rails::Application - config.load_defaults 5.0 - unless ENV['BUNDLE_GEMFILE'].include?('mongodb') - Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true - end + # config.load_defaults 5.0 + # unless ENV['BUNDLE_GEMFILE'].include?('mongodb') + # Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true + # end end end diff --git a/spec/dummy/config/environments/test.rb b/spec/dummy/config/environments/test.rb index 9a24535..c9ecc12 100644 --- a/spec/dummy/config/environments/test.rb +++ b/spec/dummy/config/environments/test.rb @@ -13,10 +13,10 @@ config.eager_load = true # Configure public file server for tests with Cache-Control for performance - config.public_file_server.enabled = true - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" - } + # config.public_file_server.enabled = true + # config.public_file_server.headers = { + # 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + # } # Show full error reports and disable caching config.consider_all_requests_local = true diff --git a/spec/dummy/config/initializers/devise.rb b/spec/dummy/config/initializers/devise.rb index 0bc3442..0ab9793 100644 --- a/spec/dummy/config/initializers/devise.rb +++ b/spec/dummy/config/initializers/devise.rb @@ -8,7 +8,7 @@ # confirmation, reset password and unlock tokens in the database. # Devise will use the `secret_key_base` as its `secret_key` # by default. You can change it below and use your own secret key. - # config.secret_key = '4e16edbe729fb51c9803b5397d7ea7827a6d8e6cd8a7fe8b09810652b9458afb623a14850fafdeee853815c09b140d3552eac721f571d8673f0e1be6c4707567' + config.secret_key = '4e16edbe729fb51c9803b5397d7ea7827a6d8e6cd8a7fe8b09810652b9458afb623a14850fafdeee853815c09b140d3552eac721f571d8673f0e1be6c4707567' # ==> Controller configuration # Configure the parent class to the devise controllers.