diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 082e9bd..8235ae5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,17 @@ jobs: - '3.2' - '3.1' - 'head' + rails: + - rails_8.0 + - rails_7.2 + - rails_7.1 + - rails_7.0 + exclude: + - ruby: '3.1' + rails: 'rails_8.0' + + env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps + BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.rails }}.gemfile steps: - name: Checkout diff --git a/.gitignore b/.gitignore index f145cc8..23d12ee 100644 --- a/.gitignore +++ b/.gitignore @@ -38,7 +38,9 @@ test/dummy/db/*.sqlite3 test/dummy/db/*.sqlite3-shm test/dummy/db/*.sqlite3-wal +# Ignore Gemfile.lock Gemfile.lock +gemfiles/*.lock # Generated test files tmp/* diff --git a/Appraisals b/Appraisals new file mode 100644 index 0000000..80de537 --- /dev/null +++ b/Appraisals @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +appraise 'rails_7.0' do + gem 'rails', '~> 7.0.0' + gem 'sqlite3', '~> 1.5.0' + + # Fix: LoadError: cannot load such file -- base64 + install_if '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0") }' do + gem 'base64' + gem 'bigdecimal' + gem 'mutex_m' + gem 'drb' + gem 'logger' + end +end + +appraise 'rails_7.1' do + gem 'rails', '~> 7.1.0' + gem 'sqlite3', '~> 1.5.0' + + # Fix: + # warning: logger was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.5.0. + # Add logger to your Gemfile or gemspec. + install_if '-> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") }' do + gem 'logger' + end +end + +appraise 'rails_7.2' do + gem 'rails', '~> 7.2.0' + gem 'sqlite3', '~> 1.5.0' +end + +appraise 'rails_8.0' do + gem 'rails', '~> 8.0.0' +end diff --git a/Gemfile b/Gemfile index 0f8e1ea..6ff39f4 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,8 @@ source "https://rubygems.org" # Specify your gem's dependencies in devise-otp.gemspec gemspec +gem "appraisal", git: "https://github.com/thoughtbot/appraisal.git" + gem "capybara" gem "minitest-reporters", ">= 0.5.0" gem "puma" @@ -10,5 +12,5 @@ gem "rake" gem "rdoc" gem "shoulda" gem "sprockets-rails" -gem "sqlite3", "~> 1.4" +gem "sqlite3", "~> 2.1" gem "standardrb" diff --git a/devise-otp.gemspec b/devise-otp.gemspec index d40f5e7..692b9ed 100644 --- a/devise-otp.gemspec +++ b/devise-otp.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |gem| gem.files = `git ls-files`.split($/) gem.require_paths = ["lib"] - gem.add_dependency "rails", ">= 7.0", "< 9.0" + gem.add_dependency "rails", ">= 7.0" gem.add_dependency "devise", ">= 4.8.0", "< 5.0" gem.add_dependency "rotp", ">= 2.0.0" gem.add_dependency "rqrcode", "~> 2.0" diff --git a/gemfiles/rails_7.0.gemfile b/gemfiles/rails_7.0.gemfile new file mode 100644 index 0000000..eaa6aab --- /dev/null +++ b/gemfiles/rails_7.0.gemfile @@ -0,0 +1,25 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", git: "https://github.com/thoughtbot/appraisal.git" +gem "capybara" +gem "minitest-reporters", ">= 0.5.0" +gem "puma" +gem "rake" +gem "rdoc" +gem "shoulda" +gem "sprockets-rails" +gem "sqlite3", "~> 1.5.0" +gem "standardrb" +gem "rails", "~> 7.0.0" + +install_if -> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.3.0") } do + gem "base64" + gem "bigdecimal" + gem "mutex_m" + gem "drb" + gem "logger" +end + +gemspec path: "../" diff --git a/gemfiles/rails_7.1.gemfile b/gemfiles/rails_7.1.gemfile new file mode 100644 index 0000000..9deec0e --- /dev/null +++ b/gemfiles/rails_7.1.gemfile @@ -0,0 +1,21 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", git: "https://github.com/thoughtbot/appraisal.git" +gem "capybara" +gem "minitest-reporters", ">= 0.5.0" +gem "puma" +gem "rake" +gem "rdoc" +gem "shoulda" +gem "sprockets-rails" +gem "sqlite3", "~> 1.5.0" +gem "standardrb" +gem "rails", "~> 7.1.0" + +install_if -> { Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") } do + gem "logger" +end + +gemspec path: "../" diff --git a/gemfiles/rails_7.2.gemfile b/gemfiles/rails_7.2.gemfile new file mode 100644 index 0000000..ff08856 --- /dev/null +++ b/gemfiles/rails_7.2.gemfile @@ -0,0 +1,17 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", git: "https://github.com/thoughtbot/appraisal.git" +gem "capybara" +gem "minitest-reporters", ">= 0.5.0" +gem "puma" +gem "rake" +gem "rdoc" +gem "shoulda" +gem "sprockets-rails" +gem "sqlite3", "~> 1.5.0" +gem "standardrb" +gem "rails", "~> 7.2.0" + +gemspec path: "../" diff --git a/gemfiles/rails_8.0.gemfile b/gemfiles/rails_8.0.gemfile new file mode 100644 index 0000000..a0ba4af --- /dev/null +++ b/gemfiles/rails_8.0.gemfile @@ -0,0 +1,17 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "appraisal", git: "https://github.com/thoughtbot/appraisal.git" +gem "capybara" +gem "minitest-reporters", ">= 0.5.0" +gem "puma" +gem "rake" +gem "rdoc" +gem "shoulda" +gem "sprockets-rails" +gem "sqlite3", "~> 2.1" +gem "standardrb" +gem "rails", "~> 8.0.0" + +gemspec path: "../" diff --git a/test/dummy/db/migrate/20240604000001_create_admins.rb b/test/dummy/db/migrate/20240604000001_create_admins.rb index e1f87f0..984ad12 100644 --- a/test/dummy/db/migrate/20240604000001_create_admins.rb +++ b/test/dummy/db/migrate/20240604000001_create_admins.rb @@ -1,4 +1,4 @@ -class CreateAdmins < ActiveRecord::Migration[7.1] +class CreateAdmins < ActiveRecord::Migration[5.0] def change create_table :admins do |t| t.string :name