diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 64dc64a..aed275b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,7 +36,7 @@ jobs: strategy: fail-fast: false matrix: - rails-version: ['5.2', '6.1', '7.0'] + rails-version: ['5.2', '6.1', '7.2', '8.1'] database: ['mysql', 'postgresql', 'sqlite'] include: - database: mysql @@ -51,9 +51,12 @@ jobs: - rails-version: '6.1' ruby-version: '3.0' bundle-gemfile: gemfiles/rails_6_1.gemfile - - rails-version: '7.0' + - rails-version: '7.2' ruby-version: '3.2' - bundle-gemfile: gemfiles/rails_7_0.gemfile + bundle-gemfile: gemfiles/rails_7_2.gemfile + - rails-version: '8.1' + ruby-version: '4.0' + bundle-gemfile: gemfiles/rails_8_1.gemfile env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.bundle-gemfile }} @@ -70,10 +73,10 @@ jobs: - name: Run tests run: bundle exec rspec --profile 10 --format RspecJunitFormatter --out test_results/rspec.xml --format progress - name: Upload result - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: - name: rspec_{{ matrix.rails-version }}-${{ matrix.database }}.xml + name: rspec_${{ matrix.rails-version }}-${{ matrix.database }}.xml path: test_results/rspec.xml - name: Test Report uses: dorny/test-reporter@v1 diff --git a/Appraisals b/Appraisals index 0054ee6..d8c0573 100644 --- a/Appraisals +++ b/Appraisals @@ -1,11 +1,19 @@ appraise "rails-5-2" do gem "rails", "~> 5.2.0" + gem "sqlite3", "~> 1.3", ">= 1.3.6" end appraise "rails-6-1" do gem "rails", "~> 6.1.0" + gem "sqlite3", "~> 1.4" end -appraise "rails-7-0" do - gem "rails", "~> 7.0.0" +appraise "rails-7-2" do + gem "rails", "~> 7.2.0" + gem "sqlite3", ">= 1.4" +end + +appraise "rails-8-1" do + gem "rails", "~> 8.1.0" + gem "sqlite3", ">= 2.1" end diff --git a/gemfiles/rails_5_0.gemfile b/gemfiles/rails_5_0.gemfile deleted file mode 100644 index 123ad55..0000000 --- a/gemfiles/rails_5_0.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.0.0" - -gemspec :path => "../" diff --git a/gemfiles/rails_5_2.gemfile b/gemfiles/rails_5_2.gemfile index ae2dbab..0d9c9bd 100644 --- a/gemfiles/rails_5_2.gemfile +++ b/gemfiles/rails_5_2.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "rspec_junit_formatter" gem "rails", "~> 5.2.0" +gem "sqlite3", "~> 1.3", ">= 1.3.6" gemspec path: "../" diff --git a/gemfiles/rails_6_1.gemfile b/gemfiles/rails_6_1.gemfile index 6bd8237..9f4c323 100644 --- a/gemfiles/rails_6_1.gemfile +++ b/gemfiles/rails_6_1.gemfile @@ -4,5 +4,6 @@ source "https://rubygems.org" gem "rspec_junit_formatter" gem "rails", "~> 6.1.0" +gem "sqlite3", "~> 1.4" gemspec path: "../" diff --git a/gemfiles/rails_7_0.gemfile b/gemfiles/rails_7_2.gemfile similarity index 71% rename from gemfiles/rails_7_0.gemfile rename to gemfiles/rails_7_2.gemfile index e3ee0a3..b81cbb3 100644 --- a/gemfiles/rails_7_0.gemfile +++ b/gemfiles/rails_7_2.gemfile @@ -3,6 +3,7 @@ source "https://rubygems.org" gem "rspec_junit_formatter" -gem "rails", "~> 7.0.0" +gem "rails", "~> 7.2.0" +gem "sqlite3", ">= 1.4" gemspec path: "../" diff --git a/gemfiles/rails_5_1.gemfile b/gemfiles/rails_8_1.gemfile similarity index 54% rename from gemfiles/rails_5_1.gemfile rename to gemfiles/rails_8_1.gemfile index 6100e83..6bf6fc0 100644 --- a/gemfiles/rails_5_1.gemfile +++ b/gemfiles/rails_8_1.gemfile @@ -2,6 +2,8 @@ source "https://rubygems.org" -gem "rails", "~> 5.1.0" +gem "rspec_junit_formatter" +gem "rails", "~> 8.1.0" +gem "sqlite3", ">= 2.1" gemspec path: "../" diff --git a/persistent_enum.gemspec b/persistent_enum.gemspec index 11016c7..9d01469 100644 --- a/persistent_enum.gemspec +++ b/persistent_enum.gemspec @@ -18,8 +18,8 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ['lib'] - spec.add_dependency 'activerecord', '>= 5.0', '< 8' - spec.add_dependency 'activesupport', '>= 5.0', '< 8' + spec.add_dependency 'activerecord', '>= 5.0', '< 9' + spec.add_dependency 'activesupport', '>= 5.0', '< 9' spec.add_dependency 'activerecord-import' @@ -29,6 +29,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'appraisal' spec.add_development_dependency 'mysql2' + spec.add_development_dependency 'ostruct' spec.add_development_dependency 'pg' spec.add_development_dependency 'sqlite3' diff --git a/spec/support/helpers/database_helper.rb b/spec/support/helpers/database_helper.rb index e2a233d..116989b 100644 --- a/spec/support/helpers/database_helper.rb +++ b/spec/support/helpers/database_helper.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +# Work around Rails 6.x bug where "logger" is used without being imported +require 'logger' + require 'yaml' require 'active_record' diff --git a/spec/unit/persistent_enum_spec.rb b/spec/unit/persistent_enum_spec.rb index 34f7842..6947c3b 100644 --- a/spec/unit/persistent_enum_spec.rb +++ b/spec/unit/persistent_enum_spec.rb @@ -4,6 +4,7 @@ require 'persistent_enum' require 'byebug' +require 'ostruct' require_relative '../spec_helper'