Skip to content

Commit

Permalink
Migrate CI to GitHub Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
petergoldstein committed Mar 10, 2022
1 parent 6a0aeff commit a458f30
Show file tree
Hide file tree
Showing 10 changed files with 121 additions and 214 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: CI

on: [push, pull_request]

jobs:
test:

runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
ruby: ["2.6", "2.7", "3.0", "3.1", ruby-head]
services:
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379

steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true # 'bundle install' and cache gems
ruby-version: ${{ matrix.ruby }}
- name: Run tests
run: bundle exec rake
31 changes: 1 addition & 30 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,32 +1,3 @@
source 'https://rubygems.org'

gem 'sidekiq', '>= 4.2.1'
gem 'fugit', '~> 1.1'

group :development do
gem 'bundler'
gem 'simplecov'

gem 'redis-namespace', '>= 1.5.2'
gem 'shoulda-context'

gem 'rack'
gem 'rack-test'

gem 'jeweler'

gem 'minitest'
gem 'test-unit'
gem 'sdoc' # sdoc -N .

gem 'slim'
gem 'sinatra'

gem 'mocha'
gem 'coveralls'

gem 'shotgun'

gem 'guard'
gem 'guard-minitest'
end
gemspec
18 changes: 0 additions & 18 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,26 +13,8 @@ rescue Bundler::BundlerError => e
end
require 'rake'

require 'jeweler'
Jeweler::Tasks.new do |gem|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
gem.name = "sidekiq-cron"
gem.homepage = "http://github.com/ondrejbartas/sidekiq-cron"
gem.license = "MIT"
gem.summary = %Q{Sidekiq Cron helps to add repeated scheduled jobs}
gem.description = %Q{Enables to set jobs to be run in specified time (using CRON notation)}
gem.email = "ondrej@bartas.cz"
gem.authors = ["Ondrej Bartas"]
# dependencies defined in Gemfile
end
Jeweler::RubygemsDotOrgTasks.new

#TESTING

task :doc do
system 'sdoc -N .'
end

require 'rake/testtask'
task :default => :test

Expand Down
4 changes: 2 additions & 2 deletions lib/sidekiq/cron/job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,9 @@ def self.all
job_hashes = nil
Sidekiq.redis do |conn|
set_members = conn.smembers(jobs_key)
job_hashes = conn.pipelined do
job_hashes = conn.pipelined do |pipeline|
set_members.each do |key|
conn.hgetall(key)
pipeline.hgetall(key)
end
end
end
Expand Down
7 changes: 7 additions & 0 deletions lib/sidekiq/cron/version.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# frozen_string_literal: true

module Sidekiq
module Cron
VERSION = "1.2.0"
end
end
138 changes: 29 additions & 109 deletions sidekiq-cron.gemspec
Original file line number Diff line number Diff line change
@@ -1,129 +1,49 @@
# Generated by jeweler
# DO NOT EDIT THIS FILE DIRECTLY
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*-
# stub: sidekiq-cron 1.2.0 ruby lib
# frozen_string_literal: true

require './lib/sidekiq/cron/version'

Gem::Specification.new do |s|
s.name = "sidekiq-cron".freeze
s.version = "1.2.0"
s.version = Sidekiq::Cron::VERSION

s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Ondrej Bartas".freeze]
s.required_ruby_version = ">= 2.5"
s.require_paths = ["lib"]
s.authors = ["Ondrej Bartas"]
s.date = "2020-04-03"
s.description = "Enables to set jobs to be run in specified time (using CRON notation)".freeze
s.email = "ondrej@bartas.cz".freeze
s.description = "Enables to set jobs to be run in specified time (using CRON notation)"
s.email = "ondrej@bartas.cz"
s.extra_rdoc_files = [
"LICENSE.txt",
"README.md"
]
s.files = [
s.files = Dir.glob('lib/**/*') + Dir.glob('test/**/*') + [
".document",
".travis.yml",
"Changes.md",
"Dockerfile",
"Gemfile",
"LICENSE.txt",
"README.md",
"Rakefile",
"VERSION",
"config.ru",
"docker-compose.yml",
"examples/web-cron-ui.png",
"lib/sidekiq-cron.rb",
"lib/sidekiq/cron.rb",
"lib/sidekiq/cron/job.rb",
"lib/sidekiq/cron/launcher.rb",
"lib/sidekiq/cron/locales/de.yml",
"lib/sidekiq/cron/locales/en.yml",
"lib/sidekiq/cron/locales/ja.yml",
"lib/sidekiq/cron/locales/ru.yml",
"lib/sidekiq/cron/locales/zh-CN.yml",
"lib/sidekiq/cron/poller.rb",
"lib/sidekiq/cron/support.rb",
"lib/sidekiq/cron/views/cron.erb",
"lib/sidekiq/cron/views/cron.slim",
"lib/sidekiq/cron/views/cron_show.erb",
"lib/sidekiq/cron/views/cron_show.slim",
"lib/sidekiq/cron/web.rb",
"lib/sidekiq/cron/web_extension.rb",
"Gemfile",
"LICENSE.txt",
"Rakefile",
"README.md",
"sidekiq-cron.gemspec",
"test/integration/performance_test.rb",
"test/test_helper.rb",
"test/unit/job_test.rb",
"test/unit/poller_test.rb",
"test/unit/web_extension_test.rb"
"VERSION",
]
s.homepage = "http://github.com/ondrejbartas/sidekiq-cron".freeze
s.licenses = ["MIT".freeze]
s.rubygems_version = "2.5.2.3".freeze
s.summary = "Sidekiq Cron helps to add repeated scheduled jobs".freeze

s.homepage = "https://github.com/ondrejbartas/sidekiq-cron"
s.licenses = ["MIT"]
s.summary = "Sidekiq Cron helps to add repeated scheduled jobs"

if s.respond_to? :specification_version then
s.specification_version = 4
s.add_dependency("fugit", ">= 1.1")
s.add_dependency("sidekiq", ">= 4.2.1")

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
s.add_runtime_dependency(%q<fugit>.freeze, ["~> 1.1"])
s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_development_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
s.add_development_dependency(%q<shoulda-context>.freeze, [">= 0"])
s.add_development_dependency(%q<rack>.freeze, [">= 0"])
s.add_development_dependency(%q<rack-test>.freeze, [">= 0"])
s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
s.add_development_dependency(%q<minitest>.freeze, [">= 0"])
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
s.add_development_dependency(%q<sdoc>.freeze, [">= 0"])
s.add_development_dependency(%q<slim>.freeze, [">= 0"])
s.add_development_dependency(%q<sinatra>.freeze, [">= 0"])
s.add_development_dependency(%q<mocha>.freeze, [">= 0"])
s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
s.add_development_dependency(%q<shotgun>.freeze, [">= 0"])
s.add_development_dependency(%q<guard>.freeze, [">= 0"])
s.add_development_dependency(%q<guard-minitest>.freeze, [">= 0"])
else
s.add_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
s.add_dependency(%q<fugit>.freeze, ["~> 1.1"])
s.add_dependency(%q<bundler>.freeze, [">= 0"])
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
s.add_dependency(%q<shoulda-context>.freeze, [">= 0"])
s.add_dependency(%q<rack>.freeze, [">= 0"])
s.add_dependency(%q<rack-test>.freeze, [">= 0"])
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
s.add_dependency(%q<minitest>.freeze, [">= 0"])
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
s.add_dependency(%q<sdoc>.freeze, [">= 0"])
s.add_dependency(%q<slim>.freeze, [">= 0"])
s.add_dependency(%q<sinatra>.freeze, [">= 0"])
s.add_dependency(%q<mocha>.freeze, [">= 0"])
s.add_dependency(%q<coveralls>.freeze, [">= 0"])
s.add_dependency(%q<shotgun>.freeze, [">= 0"])
s.add_dependency(%q<guard>.freeze, [">= 0"])
s.add_dependency(%q<guard-minitest>.freeze, [">= 0"])
end
else
s.add_dependency(%q<sidekiq>.freeze, [">= 4.2.1"])
s.add_dependency(%q<fugit>.freeze, ["~> 1.1"])
s.add_dependency(%q<bundler>.freeze, [">= 0"])
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
s.add_dependency(%q<redis-namespace>.freeze, [">= 1.5.2"])
s.add_dependency(%q<shoulda-context>.freeze, [">= 0"])
s.add_dependency(%q<rack>.freeze, [">= 0"])
s.add_dependency(%q<rack-test>.freeze, [">= 0"])
s.add_dependency(%q<jeweler>.freeze, [">= 0"])
s.add_dependency(%q<minitest>.freeze, [">= 0"])
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
s.add_dependency(%q<sdoc>.freeze, [">= 0"])
s.add_dependency(%q<slim>.freeze, [">= 0"])
s.add_dependency(%q<sinatra>.freeze, [">= 0"])
s.add_dependency(%q<mocha>.freeze, [">= 0"])
s.add_dependency(%q<coveralls>.freeze, [">= 0"])
s.add_dependency(%q<shotgun>.freeze, [">= 0"])
s.add_dependency(%q<guard>.freeze, [">= 0"])
s.add_dependency(%q<guard-minitest>.freeze, [">= 0"])
end
s.add_development_dependency("minitest", ">= 0")
s.add_development_dependency("mocha", ">= 0")
s.add_development_dependency("redis-namespace", ">= 1.5.2")
s.add_development_dependency("rack", "~> 2.0")
s.add_development_dependency("rack-test", "~> 1.0")
s.add_development_dependency("rake", "~> 13.0")
s.add_development_dependency("shoulda-context", ">= 0")
s.add_development_dependency("simplecov", ">= 0")
end

6 changes: 3 additions & 3 deletions test/integration/performance_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
describe 'Performance Poller' do
X = 10000
before do
REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
Sidekiq.redis = REDIS
Redis.current.flushdb

#clear all previous saved data from redis
Sidekiq.redis do |conn|
Expand All @@ -31,7 +31,7 @@
Time.stubs(:now).returns(enqueued_time)
end

it 'should enqueue 10000 jobs in less than 40s' do
it 'should enqueue 10000 jobs in less than 50s' do
Sidekiq.redis do |conn|
assert_equal 0, conn.llen("queue:default"), 'Queue should be empty'
end
Expand All @@ -45,6 +45,6 @@
end

puts "Performance test finished in #{bench.real}"
assert_operator bench.real, :<, 40
assert_operator bench.real, :<, 50
end
end
19 changes: 6 additions & 13 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
require 'rubygems'
require 'bundler'
begin
Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e
$stderr.puts e.message
$stderr.puts "Run `bundle install` to install missing gems"
exit e.status_code
end
$TESTING = true

require 'simplecov'
SimpleCov.start do
add_filter "/test/"

add_group 'SidekiqCron', 'lib/'
end
require 'coveralls'
Coveralls.wear!

require "minitest/autorun"
require 'shoulda-context'
Expand All @@ -26,12 +16,15 @@

#SIDEKIQ Require - need to have sidekiq running!
require 'sidekiq'
require 'sidekiq/util'
require "sidekiq-pro" if ENV['SIDEKIQ_PRO_VERSION']
require "sidekiq/processor"
require "sidekiq/fetch"
require "sidekiq/cli"

require 'sidekiq/web'

Sidekiq.logger.level = Logger::ERROR

require 'sidekiq/redis_connection'
redis_url = ENV['REDIS_URL'] || 'redis://0.0.0.0:6379'
REDIS = Sidekiq::RedisConnection.create(:url => redis_url, :namespace => 'testy')

Expand Down
2 changes: 1 addition & 1 deletion test/unit/poller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

describe 'Cron Poller' do
before do
REDIS.with { |c| c.respond_to?(:redis) ? c.redis.flushdb : c.flushdb }
Sidekiq.redis = REDIS
Redis.current.flushdb

#clear all previous saved data from redis
Sidekiq.redis do |conn|
Expand Down
Loading

0 comments on commit a458f30

Please sign in to comment.