From 622be43177dab2555ef4668d81e28e34b3dccc55 Mon Sep 17 00:00:00 2001 From: Bruno Escherl Date: Thu, 15 Aug 2024 14:02:14 +0200 Subject: [PATCH] Run tests against different rails versions To lessen the load, I also switched from appraisal install to appraisal generate and then only install gems for a given generated gemfile, not for all of them. --- .github/workflows/build.yml | 13 +++++++------ Appraisals | 23 +++++++++++++++++------ Gemfile | 2 -- beetle.gemspec | 4 ++-- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc0cb168..201e6e9d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,6 +15,7 @@ jobs: matrix: ruby-version: [3.3.4, 3.2.5, 3.1.6] redis-version: [4, 5] + rails-version: [6.1.7.8, 7.0.8.4, 7.1.3.4, 7.2.0] steps: - uses: actions/checkout@v3 @@ -35,22 +36,22 @@ jobs: - name: Start required services run: docker compose up -d - - name: Install gems - run: bundle install && bundle exec appraisal install + - name: Generate appraisal files + run: bundle install && bundle exec appraisal generate - name: Compile and test beetle go binary run: make && make test - - name: Run beetle gem tests - run: bundle exec rake test + - name: Install gems and run beetle gem tests + run: bundle install && bundle exec rake test env: - BUNDLE_GEMFILE: gemfiles/redis_${{ matrix.redis-version }}.gemfile + BUNDLE_GEMFILE: gemfiles/redis_${{ matrix.redis-version }}_rails_${{ matrix.rails-version }}.gemfile MINITEST_REPORTER: SpecReporter - name: Run beetle failover tests run: bundle exec cucumber --fail-fast || (tail -n 100 tmp/*.{log,output}; false) env: - BUNDLE_GEMFILE: gemfiles/redis_${{ matrix.redis-version }}.gemfile + BUNDLE_GEMFILE: gemfiles/redis_${{ matrix.redis-version }}_rails_${{ matrix.rails-version }}.gemfile - name: Stop services run: docker compose down diff --git a/Appraisals b/Appraisals index 95837ca4..5c328516 100644 --- a/Appraisals +++ b/Appraisals @@ -1,7 +1,18 @@ -appraise "redis-4" do - gem "redis", "~> 4.0" -end -appraise "redis-5" do - gem "redis", "~> 5.0" - gem "hiredis-client" +# keep the same versions in .github/workflows/build.yml +rails_versions = [ + "6.1.7.8", + "7.0.8.4", + "7.1.3.4", + "7.2.0" +] +rails_versions.each do |rails_version| + appraise "redis_4_rails_#{rails_version}" do + gem "redis", "~> 4.0" + gem "rails", rails_version + end + appraise "redis_5_rails_#{rails_version}" do + gem "redis", "~> 5.0" + gem "hiredis-client" + gem "rails", rails_version + end end diff --git a/Gemfile b/Gemfile index 4ce85c89..97d9322f 100644 --- a/Gemfile +++ b/Gemfile @@ -5,5 +5,3 @@ gemspec gem "hiredis-client" # gem 'bunny', '=0.7.10', :path => "#{ENV['HOME']}/src/bunny" - -gem "appraisal", '~> 2.5.0' diff --git a/beetle.gemspec b/beetle.gemspec index a5518d4e..9099866b 100644 --- a/beetle.gemspec +++ b/beetle.gemspec @@ -30,7 +30,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency "amqp", "= 1.8.0" s.add_runtime_dependency "activesupport", ">= 2.3.4" - s.add_development_dependency "activerecord", "~> 5.0" + s.add_development_dependency "activerecord", ">= 6.1" s.add_development_dependency "cucumber", "~> 8.0.0" s.add_development_dependency "daemon_controller", "~> 1.2.0" s.add_development_dependency "daemons", ">= 1.2.0" @@ -48,5 +48,5 @@ Gem::Specification.new do |s| s.add_development_dependency "redcarpet" s.add_development_dependency "github-markup" s.add_development_dependency "byebug" - s.add_development_dependency "appraisal" + s.add_development_dependency "appraisal", ">= 2.5.0" end