From 037efcdb535e968bf3d36a0e5202f42ec7332583 Mon Sep 17 00:00:00 2001 From: Farjaad Rawasia Date: Mon, 27 Oct 2025 10:17:05 -0400 Subject: [PATCH 1/3] Support sidekiq 8.x --- .github/workflows/tests.yml | 18 +++++++++++++----- Gemfile | 4 ++-- Gemfile.sidekiq7 | 10 ++++++++++ README.md | 7 ++++++- Rakefile | 18 ++++++++++++++++++ simplekiq.gemspec | 4 ++-- 6 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 Gemfile.sidekiq7 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8bcbd1c..5a8ca70 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -25,17 +25,25 @@ jobs: ports: # Maps port 6379 on service container to the host - 6379:6379 + strategy: + matrix: + sidekiq-version: ["7.3", "8.0"] env: BUNDLE_VERSION: "~> 2.1.4" BUNDLE_GEMS__CONTRIBSYS__COM: ${{ secrets.BUNDLE_GEMS__CONTRIBSYS__COM }} steps: - name: Checkout code - uses: actions/checkout@v4 - - name: Install Ruby and gems + uses: actions/checkout@v5 + - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.2.5' + ruby-version: "3.3.7" bundler-cache: true - - name: Run tests + - name: Install dependencies run: | - bundle exec rake ci:specs + if [ "${{ matrix.sidekiq-version }}" = "7.3" ]; then + cp Gemfile.sidekiq7 Gemfile + fi + bundle install + - name: Run tests + run: bundle exec rspec diff --git a/Gemfile b/Gemfile index 06e22e6..c1b27ba 100644 --- a/Gemfile +++ b/Gemfile @@ -1,10 +1,10 @@ source "https://rubygems.org" source "https://gems.contribsys.com/" do - gem "sidekiq-pro", "7.3.0" + gem "sidekiq-pro", ">= 7.3.0", "< 9" end -gem "sidekiq", "7.3.0" +gem "sidekiq", ">= 7.3.0", "< 9" # Specify your gem's dependencies in simplekiq.gemspec gemspec diff --git a/Gemfile.sidekiq7 b/Gemfile.sidekiq7 new file mode 100644 index 0000000..06e22e6 --- /dev/null +++ b/Gemfile.sidekiq7 @@ -0,0 +1,10 @@ +source "https://rubygems.org" + +source "https://gems.contribsys.com/" do + gem "sidekiq-pro", "7.3.0" +end + +gem "sidekiq", "7.3.0" + +# Specify your gem's dependencies in simplekiq.gemspec +gemspec diff --git a/README.md b/README.md index ae1032d..1b47c1c 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,12 @@ This project follows semantic versioning. See https://semver.org/ for details. After checking out the repo, run `bin/setup` to install dependencies. Note that this depends on `sidekiq-pro` which requires a [commercial license](https://sidekiq.org/products/pro.html) to install and use. -Then, run `rake ci:specs` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. +Then, run `rake ci:specs` to run the tests. You can also run: +- `rake test:sidekiq8` to test against Sidekiq 8.0 (default) +- `rake test:sidekiq7` to test against Sidekiq 7.3 +- `rake test:all` to test against all supported Sidekiq versions + +You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. diff --git a/Rakefile b/Rakefile index 2b18c34..dc7e447 100644 --- a/Rakefile +++ b/Rakefile @@ -7,3 +7,21 @@ FileList["tasks/*.rake"].each { |task| load task } RSpec::Core::RakeTask.new(:spec) task default: :spec + +namespace :test do + desc "Test against Sidekiq 8.0 (default)" + task :sidekiq8 do + sh "bundle exec rspec" + end + + desc "Test against Sidekiq 7.3" + task :sidekiq7 do + sh "cp Gemfile.sidekiq7 Gemfile" + sh "bundle install" + sh "bundle exec rspec" + sh "git checkout Gemfile" # Restore original Gemfile + end + + desc "Test against all Sidekiq versions" + task :all => [:sidekiq8, :sidekiq7] +end diff --git a/simplekiq.gemspec b/simplekiq.gemspec index e94d17b..51b3fef 100644 --- a/simplekiq.gemspec +++ b/simplekiq.gemspec @@ -29,6 +29,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency "pry" spec.add_development_dependency "standard" - spec.add_dependency "sidekiq", ">= 7.3.0" - spec.add_dependency "sidekiq-pro", "~> 7.3.0" + spec.add_dependency "sidekiq", ">= 7.3.0", "< 9.0" + spec.add_dependency "sidekiq-pro", ">= 7.3.0", "< 9.0" end From 0d650659a7255b9c7b66bd61affd794cf219018e Mon Sep 17 00:00:00 2001 From: Farjaad Rawasia Date: Mon, 27 Oct 2025 14:25:56 -0400 Subject: [PATCH 2/3] use Rake tasks in CI --- .github/workflows/tests.yml | 9 +++++---- Rakefile | 4 +--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5a8ca70..f66c410 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,10 +40,11 @@ jobs: ruby-version: "3.3.7" bundler-cache: true - name: Install dependencies + run: bundle install + - name: Run tests run: | if [ "${{ matrix.sidekiq-version }}" = "7.3" ]; then - cp Gemfile.sidekiq7 Gemfile + bundle exec rake test:sidekiq7 + else + bundle exec rake test:sidekiq8 fi - bundle install - - name: Run tests - run: bundle exec rspec diff --git a/Rakefile b/Rakefile index dc7e447..efd00a4 100644 --- a/Rakefile +++ b/Rakefile @@ -16,10 +16,8 @@ namespace :test do desc "Test against Sidekiq 7.3" task :sidekiq7 do - sh "cp Gemfile.sidekiq7 Gemfile" - sh "bundle install" + sh "bundle install --gemfile=Gemfile.sidekiq7" sh "bundle exec rspec" - sh "git checkout Gemfile" # Restore original Gemfile end desc "Test against all Sidekiq versions" From 206e519883d3de4c6967abd509d13569ab5b0ca0 Mon Sep 17 00:00:00 2001 From: Farjaad Rawasia Date: Mon, 27 Oct 2025 17:25:53 -0400 Subject: [PATCH 3/3] set sidekiq-version to 7 and 8 --- .github/workflows/tests.yml | 15 ++++----------- Rakefile | 1 + 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f66c410..ba68552 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,9 +27,9 @@ jobs: - 6379:6379 strategy: matrix: - sidekiq-version: ["7.3", "8.0"] + sidekiq-version: ["7", "8"] env: - BUNDLE_VERSION: "~> 2.1.4" + BUNDLE_VERSION: "~> 2.7.2" BUNDLE_GEMS__CONTRIBSYS__COM: ${{ secrets.BUNDLE_GEMS__CONTRIBSYS__COM }} steps: - name: Checkout code @@ -39,12 +39,5 @@ jobs: with: ruby-version: "3.3.7" bundler-cache: true - - name: Install dependencies - run: bundle install - - name: Run tests - run: | - if [ "${{ matrix.sidekiq-version }}" = "7.3" ]; then - bundle exec rake test:sidekiq7 - else - bundle exec rake test:sidekiq8 - fi + - name: Install dependencies and Run tests + run: bundle exec rake test:sidekiq${{ matrix.sidekiq-version }} diff --git a/Rakefile b/Rakefile index efd00a4..8017089 100644 --- a/Rakefile +++ b/Rakefile @@ -11,6 +11,7 @@ task default: :spec namespace :test do desc "Test against Sidekiq 8.0 (default)" task :sidekiq8 do + sh "bundle install" sh "bundle exec rspec" end