atech_cloud 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/atech_cloud/deploy.rb +14 -17
- data/lib/atech_cloud/unicorn.rb +6 -5
- metadata +4 -4
data/lib/atech_cloud/deploy.rb
CHANGED
@@ -9,6 +9,11 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
9
9
|
fetch(:deploy_to, nil) || "/opt/apps/#{fetch(:application)}"
|
10
10
|
end
|
11
11
|
|
12
|
+
## Return an array of all environments which should be deployed
|
13
|
+
def environments
|
14
|
+
fetch(:environments, nil) || [fetch(:environment, 'production')]
|
15
|
+
end
|
16
|
+
|
12
17
|
## Deployment namespace
|
13
18
|
namespace :deploy do
|
14
19
|
desc 'Deploy the latest revision of the application'
|
@@ -45,20 +50,6 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
45
50
|
|
46
51
|
desc 'Setup the repository on the remote server for the first time'
|
47
52
|
task :setup, :roles => :app do
|
48
|
-
|
49
|
-
puts
|
50
|
-
puts "Are you sure you wish to setup this application?"
|
51
|
-
puts "Any applications existing at \e[31m#{deploy_to}\e[0m will be removed immediately and will"
|
52
|
-
puts "become unaccessible."
|
53
|
-
puts
|
54
|
-
puts "If you do not wish this to happen, you have 5 seconds to cancel this request by"
|
55
|
-
puts "pressing CTRL+C..."
|
56
|
-
puts
|
57
|
-
sleep 5
|
58
|
-
puts
|
59
|
-
puts "OK then... here we go..."
|
60
|
-
sleep 1
|
61
|
-
|
62
53
|
run "rm -rf #{deploy_to}"
|
63
54
|
run "git clone -n #{fetch(:repository)} #{deploy_to} --branch #{fetch(:branch)}"
|
64
55
|
run "cd #{deploy_to} && git branch rollback && git checkout -b deploy && git branch -d #{fetch(:branch)}"
|
@@ -125,16 +116,22 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
125
116
|
namespace :unicorn do
|
126
117
|
task :start, :roles => :app do
|
127
118
|
upload_config
|
128
|
-
|
119
|
+
for environment in environments
|
120
|
+
run "sudo -u app sh -c \"umask 002 && cd #{deploy_to} && bundle exec unicorn_rails -E #{environment} -c #{deploy_to}/config/unicorn.rb -D\""
|
121
|
+
end
|
129
122
|
end
|
130
123
|
|
131
124
|
task :stop, :roles => :app do
|
132
|
-
|
125
|
+
for environment in environments
|
126
|
+
run "sudo -u app sh -c \"kill `cat #{deploy_to}/tmp/pids/unicorn.#{environment}.pid`\""
|
127
|
+
end
|
133
128
|
end
|
134
129
|
|
135
130
|
task :restart, :roles => :app do
|
136
131
|
upload_config
|
137
|
-
|
132
|
+
for environment in environments
|
133
|
+
run "sudo -u app sh -c \"kill -USR2 `cat #{deploy_to}/tmp/pids/unicorn.#{environment}.pid`\""
|
134
|
+
end
|
138
135
|
end
|
139
136
|
|
140
137
|
task :upload_config, :roles => :app do
|
data/lib/atech_cloud/unicorn.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
rails_env = ENV['RAILS_ENV'] || 'production'
|
2
|
+
|
1
3
|
## Directory to use for stuff
|
2
4
|
rails_root = File.expand_path('../../', __FILE__)
|
3
5
|
FileUtils.mkdir_p(File.join(rails_root, 'tmp', 'sockets'))
|
@@ -15,11 +17,11 @@ preload_app true
|
|
15
17
|
timeout $TIMEOUT
|
16
18
|
|
17
19
|
## Store the pid file safely away in the pids folder
|
18
|
-
logger Logger.new(File.join(rails_root, 'log',
|
19
|
-
pid File.join(rails_root, 'tmp', 'pids',
|
20
|
+
logger Logger.new(File.join(rails_root, 'log', "unicorn.#{rails_env}.log"))
|
21
|
+
pid File.join(rails_root, 'tmp', 'pids', "unicorn.#{rails_env}.pid")
|
20
22
|
|
21
23
|
## Listen on a unix data socket
|
22
|
-
listen File.join(rails_root, 'tmp', 'sockets',
|
24
|
+
listen File.join(rails_root, 'tmp', 'sockets', "unicorn.#{rails_env}.sock")
|
23
25
|
|
24
26
|
before_fork do |server, worker|
|
25
27
|
# When sent a USR2, Unicorn will suffix its pidfile with .oldbin and
|
@@ -32,7 +34,7 @@ before_fork do |server, worker|
|
|
32
34
|
#
|
33
35
|
# Using this method we get 0 downtime deploys.
|
34
36
|
|
35
|
-
old_pid = File.join(rails_root, 'tmp', 'pids',
|
37
|
+
old_pid = File.join(rails_root, 'tmp', 'pids', "unicorn.#{rails_env}.pid.oldbin")
|
36
38
|
if File.exists?(old_pid) && server.pid != old_pid
|
37
39
|
begin
|
38
40
|
Process.kill("QUIT", File.read(old_pid).to_i)
|
@@ -49,4 +51,3 @@ after_fork do |server, worker|
|
|
49
51
|
ActiveRecord::Base.establish_connection
|
50
52
|
srand
|
51
53
|
end
|
52
|
-
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atech_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 6
|
10
|
+
version: 1.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Adam Cooke
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-08 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|