diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f612da2..7d27bc1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,9 +24,12 @@ jobs: run: bundle exec rubocop --fail-level warning --display-only-fail-level-offenses --format github test: - name: Test - ${{ matrix.gemfile }} - Ruby ${{ matrix.ruby }} + name: Test - ${{ matrix.gemfile }} - Ruby ${{ matrix.ruby }} - RSpec ${{ matrix.rspec }} runs-on: ubuntu-latest timeout-minutes: 10 + permissions: + contents: read + checks: write strategy: fail-fast: false matrix: @@ -38,6 +41,7 @@ jobs: activesupport-8.0, activesupport-8.1, ] + rspec: ["3", "4"] exclude: # Rails 7.2 is >= 3.1 - ruby: "3.0" @@ -52,9 +56,23 @@ jobs: gemfile: activesupport-8.1 - ruby: 3.1 gemfile: activesupport-8.1 + # RSpec 4 only on Ruby 4.0 + - ruby: "3.0" + rspec: "4" + - ruby: 3.1 + rspec: "4" + - ruby: 3.2 + rspec: "4" + - ruby: 3.3 + rspec: "4" + - ruby: 3.4 + rspec: "4" + - ruby: 3.5 + rspec: "4" env: BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile + RSPEC_VERSION: ${{ matrix.rspec }} steps: - name: Checkout code diff --git a/Gemfile b/Gemfile index f857e45..e4ab7d9 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,9 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } # Specify your gem's dependencies in marsh_grass.gemspec gemspec +gem 'rspec', '>= 4.0.0.alpha', '< 5' if ENV['RSPEC_VERSION'] == '4' +gem 'rspec', '~> 3.6' if ENV['RSPEC_VERSION'] == '3' + group :development, :test do gem 'rubocop' gem 'rspec_junit_formatter' diff --git a/marsh_grass.gemspec b/marsh_grass.gemspec index 921a95c..b7b6ab6 100644 --- a/marsh_grass.gemspec +++ b/marsh_grass.gemspec @@ -34,7 +34,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'pry-byebug', '~> 3' spec.add_development_dependency 'rake', '~> 13.0' spec.add_dependency 'activesupport', '>= 7.1', '< 9.0' - spec.add_dependency 'rspec', '~> 3.6' + spec.add_dependency 'rspec', '>= 3.6', '< 5' spec.add_dependency 'rspec-rails', '~> 6' spec.add_dependency 'timecop', '~> 0.9' end