From 372a416fbd161d6604ea87322b50493759a21532 Mon Sep 17 00:00:00 2001 From: Andrew Babichev Date: Tue, 8 Jan 2019 12:21:23 +0200 Subject: [PATCH 1/2] Consider default required path on config file search --- lib/sidekiq/cli.rb | 15 ++++++++++----- test/dummy/config/sidekiq.yml | 1 + test/test_cli.rb | 26 ++++++++++++++++++++++++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/lib/sidekiq/cli.rb b/lib/sidekiq/cli.rb index 9ea392a26..bb2f4c95c 100644 --- a/lib/sidekiq/cli.rb +++ b/lib/sidekiq/cli.rb @@ -239,17 +239,22 @@ def setup_options(args) raise ArgumentError, "No such file #{opts[:config_file]}" end else - if opts[:require] && File.directory?(opts[:require]) - %w[config/sidekiq.yml config/sidekiq.yml.erb].each do |filename| - path = File.expand_path(filename, opts[:require]) - opts[:config_file] ||= path if File.exist?(path) - end + config_dir = if File.directory?(opts[:require].to_s) + File.join(opts[:require], 'config') + else + File.join(options[:require], 'config') + end + + %w[sidekiq.yml sidekiq.yml.erb].each do |config_file| + path = File.join(config_dir, config_file) + opts[:config_file] ||= path if File.exist?(path) end end # parse config file options opts = parse_config(opts[:config_file]).merge(opts) if opts[:config_file] + # set defaults opts[:queues] = Array(opts[:queues]) << 'default' if opts[:queues].nil? || opts[:queues].empty? opts[:strict] = true if opts[:strict].nil? opts[:concurrency] = Integer(ENV["RAILS_MAX_THREADS"]) if opts[:concurrency].nil? && ENV["RAILS_MAX_THREADS"] diff --git a/test/dummy/config/sidekiq.yml b/test/dummy/config/sidekiq.yml index 774e4c88f..b9e5211b0 100644 --- a/test/dummy/config/sidekiq.yml +++ b/test/dummy/config/sidekiq.yml @@ -1,2 +1,3 @@ --- +:require: ./test/fake_env.rb :concurrency: 25 diff --git a/test/test_cli.rb b/test/test_cli.rb index 07aa95729..e84836442 100644 --- a/test/test_cli.rb +++ b/test/test_cli.rb @@ -247,10 +247,32 @@ class TestCLI < Minitest::Test describe 'default config file' do describe 'when required path is a directory' do - it 'tries config/sidekiq.yml' do + it 'tries config/sidekiq.yml from required diretory' do @cli.parse(%w[sidekiq -r ./test/dummy]) - assert_equal 'sidekiq.yml', File.basename(Sidekiq.options[:config_file]) + assert_equal './test/dummy/config/sidekiq.yml', Sidekiq.options[:config_file] + assert_equal 25, Sidekiq.options[:concurrency] + end + end + + describe 'when required path is a file' do + it 'tries config/sidekiq.yml from current diretory' do + Sidekiq.options[:require] = './test/dummy' # stub current dir – ./ + + @cli.parse(%w[sidekiq -r ./test/fake_env.rb]) + + assert_equal './test/dummy/config/sidekiq.yml', Sidekiq.options[:config_file] + assert_equal 25, Sidekiq.options[:concurrency] + end + end + + describe 'without any required path' do + it 'tries config/sidekiq.yml from current diretory' do + Sidekiq.options[:require] = './test/dummy' # stub current dir – ./ + + @cli.parse(%w[sidekiq]) + + assert_equal './test/dummy/config/sidekiq.yml', Sidekiq.options[:config_file] assert_equal 25, Sidekiq.options[:concurrency] end end From 58914738fbf1bcf374d5cddb19a760d8bccda4f1 Mon Sep 17 00:00:00 2001 From: Andrew Babichev Date: Tue, 8 Jan 2019 15:26:13 +0200 Subject: [PATCH 2/2] Fix bundler at ci --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 85a307118..ba22c227f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ cache: bundler services: - redis-server before_install: - - gem update --system + - gem install bundler -v '< 2' gemfile: - gemfiles/rails_4.gemfile - gemfiles/rails_5.gemfile