app-deploy 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +7 -0
- data/app-deploy.gemspec +2 -2
- data/example/Rakefile +3 -3
- data/lib/app-deploy.rb +2 -2
- data/lib/app-deploy/install.rake +11 -11
- data/lib/app-deploy/nginx.rake +11 -15
- data/lib/app-deploy/signal.rake +3 -1
- data/lib/app-deploy/unicorn.rake +12 -16
- data/lib/app-deploy/utils.rb +4 -0
- data/lib/app-deploy/version.rb +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
= app-deploy changes history
|
2
2
|
|
3
|
+
== app-deploy 0.7.1 / 2009-12-17
|
4
|
+
* a way better task dependency management
|
5
|
+
* fixed that every task can be only invoked once,
|
6
|
+
now nginx, unicorn, and signal tasks can be invoked
|
7
|
+
twice or above by Task#reenable.
|
8
|
+
http://blogger.godfat.org/2009/12/app-deploy-released-3-ruby-rake-mutual.html
|
9
|
+
|
3
10
|
== app-deploy 0.7.0 / 2009-12-16
|
4
11
|
* pid management rewritten
|
5
12
|
* added signal tasks to deal with any pidfile process
|
data/app-deploy.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{app-deploy}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.7.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Lin Jen-Shin (aka godfat 真常)"]
|
9
|
-
s.date = %q{2009-12-
|
9
|
+
s.date = %q{2009-12-17}
|
10
10
|
s.description = %q{ rake tasks for deployment}
|
11
11
|
s.email = %q{godfat (XD) godfat.org}
|
12
12
|
s.extra_rdoc_files = ["CHANGES", "README", "Rakefile", "TODO", "app-deploy.gemspec", "example/Rakefile", "example/bin/install.sh", "example/bin/remote_install.sh", "example/bin/remote_update.sh", "example/bin/start.sh", "example/bin/update.sh", "example/daemon_cluster.yaml", "example/rack_cluster.yaml", "lib/app-deploy/daemon.rake", "lib/app-deploy/deploy.rake", "lib/app-deploy/deprecated/merb.rake", "lib/app-deploy/deprecated/mongrel.rake", "lib/app-deploy/gem.rake", "lib/app-deploy/git.rake", "lib/app-deploy/install.rake", "lib/app-deploy/nginx.rake", "lib/app-deploy/rack.rake", "lib/app-deploy/server.rake", "lib/app-deploy/signal.rake", "lib/app-deploy/thin.rake", "lib/app-deploy/unicorn.rake"]
|
data/example/Rakefile
CHANGED
@@ -83,9 +83,9 @@ namespace :app do
|
|
83
83
|
[:start, :stop, :restart, :reload].each{ |cmd|
|
84
84
|
desc "#{cmd} nginx(passenger)"
|
85
85
|
task cmd do
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
Rake::Task["app:nginx:#{cmd}"].invoke(
|
87
|
+
'/home/app/config/nginx.conf',
|
88
|
+
'/home/app/nginx/sbin/nginx')
|
89
89
|
end
|
90
90
|
}
|
91
91
|
end
|
data/lib/app-deploy.rb
CHANGED
data/lib/app-deploy/install.rake
CHANGED
@@ -38,10 +38,8 @@ namespace :app do
|
|
38
38
|
rmdir = "rmdir /tmp/#{tmp}"
|
39
39
|
check = "git checkout #{branch}"
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
Rake::Task['app:install:remote:sh'].invoke
|
41
|
+
script = "#{chdir}; #{clone}; #{setup}; #{rmdir}; #{check}; #{args[:script]}"
|
42
|
+
Rake::Task['app:install:remote:sh'].invoke(args[:hosts], script)
|
45
43
|
end
|
46
44
|
|
47
45
|
desc 'invoke a shell script on remote machines'
|
@@ -70,13 +68,15 @@ namespace :app do
|
|
70
68
|
|
71
69
|
desc 'upload a tarball and untar to user home, then useradd'
|
72
70
|
task :setup, [:user, :file, :hosts, :script] do |t, args|
|
73
|
-
|
74
|
-
Rake::Task['app:install:remote:upload'].invoke
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
71
|
+
path = "/tmp/app-deploy-#{Time.now.to_i}"
|
72
|
+
Rake::Task['app:install:remote:upload'].invoke(
|
73
|
+
args[:file], args[:hosts], path)
|
74
|
+
|
75
|
+
script = "sudo -u #{args[:user]} tar -zxf #{path}" +
|
76
|
+
" -C /home/#{args[:user]};" +
|
77
|
+
" rm #{path}; #{args[:script]}"
|
78
|
+
Rake::Task['app:install:remote:useradd'].invoke(
|
79
|
+
args[:user], args[:hosts], script)
|
80
80
|
end
|
81
81
|
|
82
82
|
end # of remote
|
data/lib/app-deploy/nginx.rake
CHANGED
@@ -1,22 +1,19 @@
|
|
1
1
|
|
2
|
-
namespace :app do
|
2
|
+
ns = namespace :app do
|
3
3
|
namespace :nginx do
|
4
4
|
|
5
5
|
desc 'start nginx, default config is config/nginx.conf'
|
6
6
|
task :start, [:config, :nginx] do |t, args|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
Rake::Task['app:signal:start'].invoke
|
7
|
+
script = "#{args[:nginx] || '/usr/sbin/nginx'}" +
|
8
|
+
" -c #{args[:config] || 'config/nginx.conf'}"
|
9
|
+
Rake::Task['app:signal:start'].invoke(script, 'tmp/pids/nginx.pid')
|
11
10
|
end
|
12
11
|
|
13
12
|
desc 'stop nginx'
|
14
13
|
task :stop, [:timeout] do |t, args|
|
15
14
|
# sh "kill -TERM `cat tmp/pids/nginx.pid`"
|
16
|
-
|
17
|
-
|
18
|
-
ENV['name'] = 'nginx'
|
19
|
-
Rake::Task['app:signal:stop'].invoke
|
15
|
+
Rake::Task['app:signal:stop'].invoke(
|
16
|
+
'tmp/pids/nginx.pid', args[:timeout], 'nginx')
|
20
17
|
end
|
21
18
|
|
22
19
|
desc 'restart nginx'
|
@@ -25,17 +22,16 @@ namespace :app do
|
|
25
22
|
desc 'reload config'
|
26
23
|
task :reload do
|
27
24
|
# sh 'kill -HUP `cat tmp/pids/nginx.pid`'
|
28
|
-
|
29
|
-
Rake::Task['app:nginx:kill'].invoke
|
25
|
+
Rake::Task['app:nginx:kill'].invoke('HUP')
|
30
26
|
end
|
31
27
|
|
32
28
|
desc 'send a signal to nginx'
|
33
29
|
task :kill, [:signal] do |t, args|
|
34
|
-
|
35
|
-
|
36
|
-
ENV['name'] = 'nginx'
|
37
|
-
Rake::Task['app:signal:kill'].invoke
|
30
|
+
Rake::Task['app:signal:kill'].invoke(
|
31
|
+
args[:signal], 'tmp/pids/nginx.pid', 'nginx')
|
38
32
|
end
|
39
33
|
|
40
34
|
end # of nginx
|
41
35
|
end # of app
|
36
|
+
|
37
|
+
AppDeploy.always_reenable(ns.tasks)
|
data/lib/app-deploy/signal.rake
CHANGED
data/lib/app-deploy/unicorn.rake
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
|
2
|
-
namespace :app do
|
2
|
+
ns = namespace :app do
|
3
3
|
namespace :unicorn do
|
4
4
|
|
5
5
|
desc 'start unicorn, default config is config/unicorn.rb'
|
6
6
|
task :start, [:config, :env, :unicorn] do |t, args|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
Rake::Task['app:signal:start'].invoke
|
7
|
+
script = "#{args[:unicorn] || 'unicorn'} -D" +
|
8
|
+
" -c #{args[:config] || 'config/unicorn.rb'}" +
|
9
|
+
" -E #{args[:env] || 'production'}"
|
10
|
+
Rake::Task['app:signal:start'].invoke(script, 'tmp/pids/unicorn.pid')
|
12
11
|
end
|
13
12
|
|
14
13
|
desc 'stop unicorn'
|
15
14
|
task :stop, [:timeout] do |t, args|
|
16
15
|
# sh "kill -TERM `cat tmp/pids/unicorn.pid`"
|
17
|
-
|
18
|
-
|
19
|
-
ENV['name'] = 'unicorn'
|
20
|
-
Rake::Task['app:signal:stop'].invoke
|
16
|
+
Rake::Task['app:signal:stop'].invoke(
|
17
|
+
'tmp/pids/unicorn.pid', args[:timeout], 'unicorn')
|
21
18
|
end
|
22
19
|
|
23
20
|
desc 'restart unicorn'
|
@@ -26,17 +23,16 @@ namespace :app do
|
|
26
23
|
desc 'reload config'
|
27
24
|
task :reload do
|
28
25
|
# sh 'kill -HUP `cat tmp/pids/unicorn.pid`'
|
29
|
-
|
30
|
-
Rake::Task['app:unicorn:kill'].invoke
|
26
|
+
Rake::Task['app:unicorn:kill'].invoke('HUP')
|
31
27
|
end
|
32
28
|
|
33
29
|
desc 'send a signal to unicorn'
|
34
30
|
task :kill, [:signal] do |t, args|
|
35
|
-
|
36
|
-
|
37
|
-
ENV['name'] = 'unicorn'
|
38
|
-
Rake::Task['app:signal:kill'].invoke
|
31
|
+
Rake::Task['app:signal:kill'].invoke(
|
32
|
+
args[:signal], 'tmp/pids/unicorn.pid', 'unicorn')
|
39
33
|
end
|
40
34
|
|
41
35
|
end # of unicorn
|
42
36
|
end # of app
|
37
|
+
|
38
|
+
AppDeploy.always_reenable(ns.tasks)
|
data/lib/app-deploy/utils.rb
CHANGED
data/lib/app-deploy/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Lin Jen-Shin (aka godfat \xE7\x9C\x9F\xE5\xB8\xB8)"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-17 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|