mina-sidekiq 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/Changelog.md +5 -0
- data/Gemfile.lock +2 -2
- data/Rakefile +6 -49
- data/lib/mina_sidekiq/tasks.rb +1 -1
- data/lib/mina_sidekiq/version.rb +1 -1
- data/mina-sidekiq.gemspec +2 -2
- data/test/deploy_test.rb +61 -0
- data/test/test_helper.rb +63 -0
- data/test_env/config/deploy.rb +4 -3
- metadata +16 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4ad61054148338a35c4ecdddeba0f75ffe3e84d
|
4
|
+
data.tar.gz: cb22bb7811c809f78f0b08830b21cb119904b585
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e9ac235f8f2a49d640b03b14899a889dff88b87bc401de329b313a8b56719e6180d7229e9cb05e069a20d14f571264146b1cae74ec4339ab86930b2a2429b04
|
7
|
+
data.tar.gz: f32ab1cdced24d2c85d1c43e24f86f1ecb7b9a19ea2bfd0a505d6899e3301df3b703b488ce88f285feb4e9fbb15cdfb69e2f4b9c9878d16fdda3e0513f3fa7cb
|
data/.travis.yml
CHANGED
data/Changelog.md
CHANGED
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -1,52 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require "rake"
|
2
|
+
require "rake/testtask"
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
if ENV['FORCE_ADD_SSH_KEY']
|
7
|
-
force_add_ssh_key
|
8
|
-
end
|
9
|
-
|
10
|
-
FileUtils.rm_rf('deploy')
|
11
|
-
sh 'mina setup --verbose'
|
12
|
-
begin
|
13
|
-
# fresh deploy
|
14
|
-
sh 'mina deploy --verbose'
|
15
|
-
# second deploy
|
16
|
-
sh 'mina deploy --verbose'
|
17
|
-
rescue Exception => e
|
18
|
-
puts e.message
|
19
|
-
puts e.backtrace.inspect
|
20
|
-
log = "./deploy/shared/sidekiq.log"
|
21
|
-
if File.exists?(log)
|
22
|
-
puts "cat #{log}"
|
23
|
-
puts File.open(log).read
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def force_add_ssh_key(&block)
|
30
|
-
ssh_key = File.expand_path("~/.ssh/id_rsa.pub")
|
31
|
-
unless File.exists?(ssh_key)
|
32
|
-
sh "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa"
|
33
|
-
end
|
34
|
-
file = File.open(ssh_key)
|
35
|
-
pub_key = file.readline
|
36
|
-
file.close
|
37
|
-
|
38
|
-
authorized_keys = File.expand_path("~/.ssh/authorized_keys")
|
39
|
-
begin
|
40
|
-
File.open(authorized_keys, 'a+') do |f|
|
41
|
-
File.chmod(0600, authorized_keys)
|
42
|
-
f.puts(pub_key)
|
43
|
-
end
|
44
|
-
rescue Exception => e
|
45
|
-
puts e.message
|
46
|
-
puts e.backtrace.inspect
|
47
|
-
ensure
|
48
|
-
File.chmod(0400, authorized_keys)
|
49
|
-
end
|
4
|
+
Rake::TestTask.new do |t|
|
5
|
+
t.libs << "test"
|
6
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
50
7
|
end
|
51
8
|
|
52
|
-
task :
|
9
|
+
task default: :test
|
data/lib/mina_sidekiq/tasks.rb
CHANGED
@@ -110,7 +110,7 @@ namespace :sidekiq do
|
|
110
110
|
for_each_process do |pid_file, idx|
|
111
111
|
queue %{
|
112
112
|
cd "#{deploy_to}/#{current_path}"
|
113
|
-
#{echo_cmd %[
|
113
|
+
#{echo_cmd %[#{sidekiq} -d -e #{rails_env} -C #{sidekiq_config} -i #{idx} -P #{pid_file} -L #{sidekiq_log}] }
|
114
114
|
}
|
115
115
|
end
|
116
116
|
end
|
data/lib/mina_sidekiq/version.rb
CHANGED
data/mina-sidekiq.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.homepage = "http://github.com/Mic92/mina-sidekiq"
|
11
11
|
s.summary = "Tasks to deploy Sidekiq with mina."
|
12
12
|
s.description = "Adds tasks to aid in the deployment of Sidekiq"
|
13
|
-
s.license =
|
13
|
+
s.license = "MIT"
|
14
14
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.post_install_message = <<-MESSAGE
|
20
20
|
Starting with 0.2.0, you have to add:
|
21
21
|
|
22
|
-
require
|
22
|
+
require "mina_sidekiq/tasks"
|
23
23
|
|
24
24
|
in your deploy.rb to load the library
|
25
25
|
MESSAGE
|
data/test/deploy_test.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe "mina_sidekiq" do
|
4
|
+
before do
|
5
|
+
@old_cwd = Dir.pwd
|
6
|
+
@env_root = TEST_ROOT.join("..", "test_env")
|
7
|
+
Dir.chdir(@env_root)
|
8
|
+
FileUtils.rm_rf("deploy")
|
9
|
+
end
|
10
|
+
after { Dir.chdir(@old_cwd) }
|
11
|
+
|
12
|
+
def mina(task)
|
13
|
+
cmd = "bundle exec mina --verbose #{task}"
|
14
|
+
puts "$ #{cmd}"
|
15
|
+
system cmd
|
16
|
+
end
|
17
|
+
|
18
|
+
def check_process(pid)
|
19
|
+
begin
|
20
|
+
Process.kill(0, pid)
|
21
|
+
return true
|
22
|
+
rescue Errno::EPERM => e
|
23
|
+
puts "No permission to query #{pid}!"
|
24
|
+
raise e
|
25
|
+
rescue Errno::ESRCH
|
26
|
+
puts "#{pid} is NOT running."
|
27
|
+
return false
|
28
|
+
rescue
|
29
|
+
puts "Unable to determine status for #{pid} : #{$!}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "setup" do
|
34
|
+
before { mina "setup" }
|
35
|
+
it "should deploy" do
|
36
|
+
begin
|
37
|
+
# fresh deploy
|
38
|
+
mina "deploy"
|
39
|
+
# second deploy
|
40
|
+
mina "deploy"
|
41
|
+
rescue Exception => e
|
42
|
+
log = "./deploy/shared/sidekiq.log"
|
43
|
+
if File.exists?(log)
|
44
|
+
puts "cat #{log}"
|
45
|
+
puts File.open(log).read
|
46
|
+
end
|
47
|
+
raise e
|
48
|
+
end
|
49
|
+
end
|
50
|
+
it "should start/stop sidekiq" do
|
51
|
+
sidekiq_pid_path = @env_root.join("deploy", "shared", "pids", "sidekiq.pid")
|
52
|
+
# fresh deploy
|
53
|
+
mina "sidekiq:start"
|
54
|
+
pid = File.read(sidekiq_pid_path)
|
55
|
+
check_process(pid).must_equal true
|
56
|
+
# second deploy
|
57
|
+
mina "sidekiq:stop"
|
58
|
+
check_process(pid).must_equal true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require "minitest/spec"
|
2
|
+
require "minitest/autorun"
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
TEST_ROOT = Pathname.new(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
module MiniTestWithHooks
|
8
|
+
class Unit < MiniTest::Unit
|
9
|
+
def before_suites; end
|
10
|
+
def after_suites; end
|
11
|
+
|
12
|
+
def _run_suites(suites, type)
|
13
|
+
begin
|
14
|
+
before_suites
|
15
|
+
super(suites, type)
|
16
|
+
ensure
|
17
|
+
after_suites
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def _run_suite(suite, type)
|
22
|
+
begin
|
23
|
+
suite.before_suite
|
24
|
+
super(suite, type)
|
25
|
+
ensure
|
26
|
+
suite.after_suite
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
module MiniTestWithTransactions
|
33
|
+
class Unit < MiniTestWithHooks::Unit
|
34
|
+
def before_suites
|
35
|
+
super
|
36
|
+
if ENV["FORCE_ADD_SSH_KEY"]
|
37
|
+
force_add_ssh_key
|
38
|
+
end
|
39
|
+
end
|
40
|
+
def force_add_ssh_key(&block)
|
41
|
+
ssh_key = File.expand_path("~/.ssh/id_rsa.pub")
|
42
|
+
unless File.exists?(ssh_key)
|
43
|
+
sh "ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa"
|
44
|
+
end
|
45
|
+
file = File.open(ssh_key)
|
46
|
+
pub_key = file.readline
|
47
|
+
file.close
|
48
|
+
|
49
|
+
authorized_keys = File.expand_path("~/.ssh/authorized_keys")
|
50
|
+
begin
|
51
|
+
File.open(authorized_keys, "a+") do |f|
|
52
|
+
File.chmod(0600, authorized_keys)
|
53
|
+
f.puts(pub_key)
|
54
|
+
end
|
55
|
+
rescue Exception => e
|
56
|
+
puts e.message
|
57
|
+
puts e.backtrace.inspect
|
58
|
+
ensure
|
59
|
+
File.chmod(0400, authorized_keys)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/test_env/config/deploy.rb
CHANGED
@@ -6,6 +6,7 @@ require 'mina/bundler'
|
|
6
6
|
require 'mina/rvm'
|
7
7
|
require 'fileutils'
|
8
8
|
|
9
|
+
|
9
10
|
FileUtils.mkdir_p "#{Dir.pwd}/deploy"
|
10
11
|
|
11
12
|
set :ssh_options, '-o StrictHostKeyChecking=no'
|
@@ -19,15 +20,15 @@ set :sidekiq_processes, 2
|
|
19
20
|
set :shared_paths, ['log']
|
20
21
|
|
21
22
|
task :environment do
|
22
|
-
invoke :'rvm:use[ruby-2.
|
23
|
+
invoke :'rvm:use[ruby-2.1.2]'
|
23
24
|
end
|
24
25
|
|
25
|
-
task :
|
26
|
+
task setup: :environment do
|
26
27
|
queue! %[mkdir -p "#{deploy_to}/shared/pids/"]
|
27
28
|
queue! %[mkdir -p "#{deploy_to}/shared/log/"]
|
28
29
|
end
|
29
30
|
|
30
|
-
task :
|
31
|
+
task deploy: :environment do
|
31
32
|
deploy do
|
32
33
|
invoke :'git:clone'
|
33
34
|
invoke :'deploy:link_shared_paths'
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mina-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joerg Thalheim
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mina
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: Adds tasks to aid in the deployment of Sidekiq
|
@@ -31,8 +31,8 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- .gitignore
|
35
|
-
- .travis.yml
|
34
|
+
- ".gitignore"
|
35
|
+
- ".travis.yml"
|
36
36
|
- Changelog.md
|
37
37
|
- Gemfile
|
38
38
|
- Gemfile.lock
|
@@ -43,6 +43,8 @@ files:
|
|
43
43
|
- lib/mina_sidekiq/tasks.rb
|
44
44
|
- lib/mina_sidekiq/version.rb
|
45
45
|
- mina-sidekiq.gemspec
|
46
|
+
- test/deploy_test.rb
|
47
|
+
- test/test_helper.rb
|
46
48
|
- test_env/config/deploy.rb
|
47
49
|
homepage: http://github.com/Mic92/mina-sidekiq
|
48
50
|
licenses:
|
@@ -51,7 +53,7 @@ metadata: {}
|
|
51
53
|
post_install_message: |
|
52
54
|
Starting with 0.2.0, you have to add:
|
53
55
|
|
54
|
-
require
|
56
|
+
require "mina_sidekiq/tasks"
|
55
57
|
|
56
58
|
in your deploy.rb to load the library
|
57
59
|
rdoc_options: []
|
@@ -59,18 +61,21 @@ require_paths:
|
|
59
61
|
- lib
|
60
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
63
|
requirements:
|
62
|
-
- -
|
64
|
+
- - ">="
|
63
65
|
- !ruby/object:Gem::Version
|
64
66
|
version: '0'
|
65
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
68
|
requirements:
|
67
|
-
- -
|
69
|
+
- - ">="
|
68
70
|
- !ruby/object:Gem::Version
|
69
71
|
version: '0'
|
70
72
|
requirements: []
|
71
73
|
rubyforge_project:
|
72
|
-
rubygems_version: 2.
|
74
|
+
rubygems_version: 2.4.5
|
73
75
|
signing_key:
|
74
76
|
specification_version: 4
|
75
77
|
summary: Tasks to deploy Sidekiq with mina.
|
76
|
-
test_files:
|
78
|
+
test_files:
|
79
|
+
- test/deploy_test.rb
|
80
|
+
- test/test_helper.rb
|
81
|
+
has_rdoc:
|