mina-sidekiq 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|