ninja-deploy 1.0.2 → 1.1.0
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.
- data/README.rdoc +98 -4
- data/VERSION +1 -1
- data/lib/ninja_deploy/recipes/deploy.rb +37 -0
- data/lib/ninja_deploy/recipes/thinking_sphinx.rb +54 -0
- data/ninja-deploy.gemspec +3 -1
- metadata +4 -2
data/README.rdoc
CHANGED
@@ -38,6 +38,25 @@ Dependencies:
|
|
38
38
|
* The configured local development user must have permission to load the database form a MySQL dump file.
|
39
39
|
|
40
40
|
|
41
|
+
== Deploy Recipes
|
42
|
+
|
43
|
+
Require the deploy recipes in your deploy.rb file:
|
44
|
+
|
45
|
+
require 'ninja_deploy/recipes/deploy'
|
46
|
+
|
47
|
+
=== web:disable
|
48
|
+
|
49
|
+
Presents a maintenance page to visitors.
|
50
|
+
|
51
|
+
As Callback:
|
52
|
+
|
53
|
+
after "deploy:update_code", "deploy:web:disable"
|
54
|
+
|
55
|
+
From Command-Line:
|
56
|
+
|
57
|
+
cap production deploy:web:disable REASON="hardware upgrade" UNTIL="12pm Central Time"
|
58
|
+
|
59
|
+
|
41
60
|
== Log Recipes
|
42
61
|
|
43
62
|
Require the database recipes in your deploy.rb file:
|
@@ -53,7 +72,7 @@ Tails the remote server's log for the current environment.
|
|
53
72
|
|
54
73
|
== Passenger Recipes
|
55
74
|
|
56
|
-
Require the
|
75
|
+
Require the passenger recipes in your deploy.rb file:
|
57
76
|
|
58
77
|
require 'ninja_deploy/recipes/passenger'
|
59
78
|
|
@@ -84,7 +103,7 @@ From Command-Line:
|
|
84
103
|
|
85
104
|
== Sass Recipes
|
86
105
|
|
87
|
-
Require the
|
106
|
+
Require the sass recipes in your deploy.rb file:
|
88
107
|
|
89
108
|
require 'ninja_deploy/recipes/sass'
|
90
109
|
|
@@ -101,9 +120,84 @@ From Command-Line:
|
|
101
120
|
cap production sass:update
|
102
121
|
|
103
122
|
|
123
|
+
== Thinking Sphinx Recipes
|
124
|
+
|
125
|
+
Require the thinking sphinx recipes in your deploy.rb file:
|
126
|
+
|
127
|
+
require 'ninja_deploy/recipes/thinking_sphinx'
|
128
|
+
|
129
|
+
=== configure
|
130
|
+
|
131
|
+
Generates the Thinking Sphinx configuration file from the sphinx.yml file.
|
132
|
+
|
133
|
+
As Callback:
|
134
|
+
|
135
|
+
after "deploy:update_code", "thinking_sphinx:configure"
|
136
|
+
|
137
|
+
From Command-Line:
|
138
|
+
|
139
|
+
cap production thinking_sphinx:configure
|
140
|
+
|
141
|
+
=== index
|
142
|
+
|
143
|
+
Builds the Sphinx index files.
|
144
|
+
|
145
|
+
From Command-Line:
|
146
|
+
|
147
|
+
cap production thinking_sphinx:configure
|
148
|
+
|
149
|
+
=== start
|
150
|
+
|
151
|
+
Start Sphinx searchd daemon.
|
152
|
+
|
153
|
+
As Callback:
|
154
|
+
|
155
|
+
after "deploy:update_code", "thinking_sphinx:start"
|
156
|
+
|
157
|
+
=== stop
|
158
|
+
|
159
|
+
Stops Sphinx searchd daemon.
|
160
|
+
|
161
|
+
As Callback:
|
162
|
+
|
163
|
+
after "deploy:update_code", "thinking_sphinx:stop"
|
164
|
+
|
165
|
+
=== restart
|
166
|
+
|
167
|
+
Stops and starts the Sphinx searchd daemon.
|
168
|
+
|
169
|
+
From Command-Line:
|
170
|
+
|
171
|
+
cap production thinking_sphinx:restart
|
172
|
+
|
173
|
+
=== rebuild
|
174
|
+
|
175
|
+
Stops the Sphinx searchd daemon, re-indexes and then starts the searchd daemon.
|
176
|
+
|
177
|
+
From Command-Line:
|
178
|
+
|
179
|
+
cap production thinking_sphinx:rebuild
|
180
|
+
|
181
|
+
=== shared_sphinx_folder
|
182
|
+
|
183
|
+
Create the folder in the shared directory to store the Sphinx files.
|
184
|
+
|
185
|
+
As Callback:
|
186
|
+
|
187
|
+
after "deploy:update_code", "thinking_sphinx:shared_sphinx_folder"
|
188
|
+
|
189
|
+
=== symlink_sphinx_indexes
|
190
|
+
|
191
|
+
symlink to the folder in the shared directory to store the Sphinx files.
|
192
|
+
|
193
|
+
As Callback:
|
194
|
+
|
195
|
+
after "deploy:update_code", "thinking_sphinx:symlink_sphinx_indexes"
|
196
|
+
|
197
|
+
|
104
198
|
== Version Recipes
|
105
199
|
|
106
|
-
Require the
|
200
|
+
Require the version recipes in your deploy.rb file:
|
107
201
|
|
108
202
|
require 'ninja_deploy/recipes/version'
|
109
203
|
|
@@ -122,7 +216,7 @@ Dependencies:
|
|
122
216
|
|
123
217
|
== Whenever Recipes
|
124
218
|
|
125
|
-
Require the
|
219
|
+
Require the whenever recipes in your deploy.rb file:
|
126
220
|
|
127
221
|
require 'ninja_deploy/recipes/whenever'
|
128
222
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Capistrano::Configuration.instance( :must_exist ).load do
|
2
|
+
namespace :deploy do
|
3
|
+
namespace :web do
|
4
|
+
desc <<-DESC
|
5
|
+
Present custom maintenance page to visitors. Disables your application's web \
|
6
|
+
interface by writing a "maintenance.html" file to each web server. The \
|
7
|
+
servers must be configured to detect the presence of this file, and if \
|
8
|
+
it is present, always display it instead of performing the request.
|
9
|
+
|
10
|
+
By default, the maintenance page will just say the site is down for \
|
11
|
+
"maintenance", and will be back "shortly", but you can customize the \
|
12
|
+
page by specifying the REASON and UNTIL environment variables:
|
13
|
+
|
14
|
+
$ cap deploy:web:disable \\
|
15
|
+
REASON="hardware upgrade" \\
|
16
|
+
UNTIL="12pm Central Time"
|
17
|
+
|
18
|
+
Further customization copy your html file to shared_path+'/system/maintenance.html.custom'.
|
19
|
+
If this file exists it will be used instead of the default capistrano ugly page
|
20
|
+
DESC
|
21
|
+
task :disable, :roles => :web, :except => { :no_release => true } do
|
22
|
+
maint_file = "#{shared_path}/system/maintenance.html"
|
23
|
+
on_rollback { run "rm #{shared_path}/system/maintenance.html" }
|
24
|
+
|
25
|
+
reason = ENV['REASON']
|
26
|
+
deadline = ENV['UNTIL']
|
27
|
+
|
28
|
+
template = File.read(File.join(File.dirname(__FILE__), "templates", "maintenance.html.erb"))
|
29
|
+
#result = Haml::Engine.new(template).to_html
|
30
|
+
result = ERB.new(template).result(binding)
|
31
|
+
|
32
|
+
put result, "#{shared_path}/system/maintenance.html.tmp", :mode => 0644
|
33
|
+
run "if [ -f #{shared_path}/system/maintenance.html.custom ]; then cp #{shared_path}/system/maintenance.html.custom #{maint_file}; else cp #{shared_path}/system/maintenance.html.tmp #{maint_file}; fi"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
Capistrano::Configuration.instance( :must_exist ).load do
|
2
|
+
namespace :thinking_sphinx do
|
3
|
+
desc "Generate the Sphinx configuration file"
|
4
|
+
task :configure do
|
5
|
+
rake "thinking_sphinx:configure"
|
6
|
+
end
|
7
|
+
|
8
|
+
desc "Index data"
|
9
|
+
task :index do
|
10
|
+
rake "thinking_sphinx:index"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Start the Sphinx daemon"
|
14
|
+
task :start do
|
15
|
+
rake "thinking_sphinx:start"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Stop the Sphinx daemon"
|
19
|
+
task :stop do
|
20
|
+
rake "thinking_sphinx:stop"
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Stop and then start the Sphinx daemon"
|
24
|
+
task :restart do
|
25
|
+
stop
|
26
|
+
start
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "Stop, re-index and then start the Sphinx daemon"
|
30
|
+
task :rebuild do
|
31
|
+
stop
|
32
|
+
index
|
33
|
+
start
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Add the shared folder for sphinx files for the production environment"
|
37
|
+
task :shared_sphinx_folder, :roles => :web do
|
38
|
+
run "mkdir -p #{shared_path}/db/sphinx/#{rails_env}"
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "Symlink to the shared folder for sphinx files for the production environment"
|
42
|
+
task :symlink_sphinx_indexes, :roles => [:app] do
|
43
|
+
run "ln -nfs #{shared_path}/db/sphinx #{release_path}/db/sphinx"
|
44
|
+
end
|
45
|
+
|
46
|
+
def rake(*tasks)
|
47
|
+
rails_env = fetch(:rails_env, "production")
|
48
|
+
rake = fetch(:rake, "rake")
|
49
|
+
tasks.each do |t|
|
50
|
+
run "if [ -d #{release_path} ]; then cd #{release_path}; else cd #{current_path}; fi; #{rake} RAILS_ENV=#{rails_env} #{t}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/ninja-deploy.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ninja-deploy}
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ninja Loss"]
|
@@ -26,9 +26,11 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"lib/ninja_deploy.rb",
|
28
28
|
"lib/ninja_deploy/recipes/database.rb",
|
29
|
+
"lib/ninja_deploy/recipes/deploy.rb",
|
29
30
|
"lib/ninja_deploy/recipes/log.rb",
|
30
31
|
"lib/ninja_deploy/recipes/passenger.rb",
|
31
32
|
"lib/ninja_deploy/recipes/sass.rb",
|
33
|
+
"lib/ninja_deploy/recipes/thinking_sphinx.rb",
|
32
34
|
"lib/ninja_deploy/recipes/version.rb",
|
33
35
|
"lib/ninja_deploy/recipes/whenever.rb",
|
34
36
|
"ninja-deploy.gemspec",
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.2
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ninja Loss
|
@@ -67,9 +67,11 @@ files:
|
|
67
67
|
- VERSION
|
68
68
|
- lib/ninja_deploy.rb
|
69
69
|
- lib/ninja_deploy/recipes/database.rb
|
70
|
+
- lib/ninja_deploy/recipes/deploy.rb
|
70
71
|
- lib/ninja_deploy/recipes/log.rb
|
71
72
|
- lib/ninja_deploy/recipes/passenger.rb
|
72
73
|
- lib/ninja_deploy/recipes/sass.rb
|
74
|
+
- lib/ninja_deploy/recipes/thinking_sphinx.rb
|
73
75
|
- lib/ninja_deploy/recipes/version.rb
|
74
76
|
- lib/ninja_deploy/recipes/whenever.rb
|
75
77
|
- ninja-deploy.gemspec
|