whiskey_disk 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/whiskey_disk.rb +23 -22
- data/spec/whiskey_disk_spec.rb +20 -0
- data/whiskey_disk.gemspec +2 -2
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
data/lib/whiskey_disk.rb
CHANGED
@@ -119,12 +119,25 @@ class WhiskeyDisk
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def if_task_defined(task, cmd)
|
122
|
-
%Q{if [[
|
122
|
+
%Q{if [[ `#{env_vars} rake -P | grep #{task}` != "" ]]; then #{cmd}; fi}
|
123
123
|
end
|
124
124
|
|
125
|
-
def
|
126
|
-
"
|
127
|
-
"
|
125
|
+
def clone_repository(repo, path)
|
126
|
+
enqueue "cd #{parent_path(path)}"
|
127
|
+
enqueue("if [ -e #{path} ]; then echo 'Repository already cloned to [#{path}]. Skipping.'; " +
|
128
|
+
"else git clone #{repo} #{tail_path(path)} ; fi")
|
129
|
+
end
|
130
|
+
|
131
|
+
def refresh_checkout(path, repo_branch)
|
132
|
+
enqueue "cd #{path}"
|
133
|
+
enqueue "git fetch origin +refs/heads/#{repo_branch}:refs/remotes/origin/#{repo_branch}"
|
134
|
+
enqueue "git reset --hard origin/#{repo_branch}"
|
135
|
+
end
|
136
|
+
|
137
|
+
def run_rake_task(path, task_name)
|
138
|
+
enqueue "cd #{path}"
|
139
|
+
enqueue(if_file_present("#{self[:deploy_to]}/Rakefile",
|
140
|
+
if_task_defined(task_name, "#{env_vars} rake --trace #{task_name} to=#{self[:environment]}")))
|
128
141
|
end
|
129
142
|
|
130
143
|
def ensure_main_parent_path_is_present
|
@@ -139,28 +152,22 @@ class WhiskeyDisk
|
|
139
152
|
|
140
153
|
def checkout_main_repository
|
141
154
|
needs(:deploy_to, :repository)
|
142
|
-
|
143
|
-
enqueue conditional_clone(self[:repository], self[:deploy_to])
|
155
|
+
clone_repository(self[:repository], self[:deploy_to])
|
144
156
|
end
|
145
157
|
|
146
158
|
def checkout_configuration_repository
|
147
159
|
needs(:deploy_config_to, :config_repository)
|
148
|
-
|
149
|
-
enqueue conditional_clone(self[:config_repository], self[:deploy_config_to])
|
160
|
+
clone_repository(self[:config_repository], self[:deploy_config_to])
|
150
161
|
end
|
151
162
|
|
152
163
|
def update_main_repository_checkout
|
153
164
|
needs(:deploy_to)
|
154
|
-
|
155
|
-
enqueue "git fetch origin +refs/heads/#{branch}:refs/remotes/origin/#{branch}"
|
156
|
-
enqueue "git reset --hard origin/#{branch}"
|
165
|
+
refresh_checkout(self[:deploy_to], branch)
|
157
166
|
end
|
158
167
|
|
159
168
|
def update_configuration_repository_checkout
|
160
169
|
needs(:deploy_config_to)
|
161
|
-
|
162
|
-
enqueue "git fetch origin +refs/heads/#{config_branch}:refs/remotes/origin/#{config_branch}"
|
163
|
-
enqueue "git reset --hard origin/#{config_branch}"
|
170
|
+
refresh_checkout(self[:deploy_config_to], config_branch)
|
164
171
|
end
|
165
172
|
|
166
173
|
def refresh_configuration
|
@@ -171,18 +178,12 @@ class WhiskeyDisk
|
|
171
178
|
|
172
179
|
def run_post_setup_hooks
|
173
180
|
needs(:deploy_to)
|
174
|
-
|
175
|
-
enqueue(if_file_present("#{self[:deploy_to]}/Rakefile",
|
176
|
-
if_task_defined("deploy:post_setup",
|
177
|
-
"#{env_vars} rake --trace deploy:post_setup to=#{self[:environment]}")))
|
181
|
+
run_rake_task(self[:deploy_to], "deploy:post_setup")
|
178
182
|
end
|
179
183
|
|
180
184
|
def run_post_deploy_hooks
|
181
185
|
needs(:deploy_to)
|
182
|
-
|
183
|
-
enqueue(if_file_present("#{self[:deploy_to]}/Rakefile",
|
184
|
-
if_task_defined("deploy:post_deploy",
|
185
|
-
"#{env_vars} rake --trace deploy:post_deploy to=#{self[:environment]}")))
|
186
|
+
run_rake_task(self[:deploy_to], "deploy:post_deploy")
|
186
187
|
end
|
187
188
|
end
|
188
189
|
end
|
data/spec/whiskey_disk_spec.rb
CHANGED
@@ -362,6 +362,16 @@ describe 'WhiskeyDisk' do
|
|
362
362
|
WhiskeyDisk.buffer.join(' ').should.match(%r{if \[ -e /path/to/main/repo/Rakefile \]; then .*; fi})
|
363
363
|
end
|
364
364
|
|
365
|
+
it 'should ensure that any rake ENV variable are set when checking for deploy:post_setup tasks' do
|
366
|
+
@parameters = { 'deploy_to' => '/path/to/main/repo', 'rake_env' => { 'RAILS_ENV' => 'production', 'FOO' => 'bar' } }
|
367
|
+
WhiskeyDisk::Config.stub!(:fetch).and_return(@parameters)
|
368
|
+
WhiskeyDisk.reset
|
369
|
+
WhiskeyDisk.run_post_setup_hooks
|
370
|
+
@parameters['rake_env'].each_pair do |k,v|
|
371
|
+
WhiskeyDisk.buffer.join(' ').should.match(%r{#{k}='#{v}' .*rake -P})
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
365
375
|
it 'should make the post setup rake tasks conditional on the deploy:post_setup rake task being defined' do
|
366
376
|
WhiskeyDisk.run_post_setup_hooks
|
367
377
|
WhiskeyDisk.buffer.join(' ').should.match(%r{if \[\[ \`rake -P | grep deploy:post_setup\` != "" \]\]; })
|
@@ -406,6 +416,16 @@ describe 'WhiskeyDisk' do
|
|
406
416
|
WhiskeyDisk.buffer.join(' ').should.match(%r{cd /path/to/main/repo})
|
407
417
|
end
|
408
418
|
|
419
|
+
it 'should ensure that any rake ENV variable are set when checking for deploy:post_setup tasks' do
|
420
|
+
@parameters = { 'deploy_to' => '/path/to/main/repo', 'rake_env' => { 'RAILS_ENV' => 'production', 'FOO' => 'bar' } }
|
421
|
+
WhiskeyDisk::Config.stub!(:fetch).and_return(@parameters)
|
422
|
+
WhiskeyDisk.reset
|
423
|
+
WhiskeyDisk.run_post_deploy_hooks
|
424
|
+
@parameters['rake_env'].each_pair do |k,v|
|
425
|
+
WhiskeyDisk.buffer.join(' ').should.match(%r{#{k}='#{v}' .*rake -P})
|
426
|
+
end
|
427
|
+
end
|
428
|
+
|
409
429
|
it 'should make the post deployment rake tasks conditional on the presence of a Rakefile in the deployment path' do
|
410
430
|
WhiskeyDisk.run_post_deploy_hooks
|
411
431
|
WhiskeyDisk.buffer.join(' ').should.match(%r{if \[ -e /path/to/main/repo/Rakefile \]; then .*; fi})
|
data/whiskey_disk.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{whiskey_disk}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Rick Bradley"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-08-31}
|
13
13
|
s.default_executable = %q{wd}
|
14
14
|
s.description = %q{Opinionated gem for doing fast git-based server deployments.}
|
15
15
|
s.email = %q{rick@rickbradley.com}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whiskey_disk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 5
|
10
|
+
version: 0.4.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Rick Bradley
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-08-31 00:00:00 -05:00
|
19
19
|
default_executable: wd
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|