Skip to content

Commit

Permalink
Run tests against different rails versions
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Aqualon committed Aug 15, 2024
1 parent 78ff87d commit 622be43
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 16 deletions.
13 changes: 7 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
23 changes: 17 additions & 6 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -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
2 changes: 0 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ gemspec
gem "hiredis-client"

# gem 'bunny', '=0.7.10', :path => "#{ENV['HOME']}/src/bunny"

gem "appraisal", '~> 2.5.0'
4 changes: 2 additions & 2 deletions beetle.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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

0 comments on commit 622be43

Please sign in to comment.