vlad 2.5.1 → 2.6.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.
Files changed (6) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +10 -0
  3. data/lib/vlad.rb +2 -2
  4. data/lib/vlad/core.rb +39 -17
  5. metadata +5 -5
  6. metadata.gz.sig +0 -0
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,13 @@
1
+ === 2.6.0 / 2013-07-03
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Split update task into smaller chunks for easier extension. (chredd)
6
+
7
+ * 1 bug fix:
8
+
9
+ * Oops. Fixed typo in exception class name. (dplummer)
10
+
1
11
  === 2.5.1 / 2013-06-20
2
12
 
3
13
  * 2 minor enhancements:
@@ -21,7 +21,7 @@ module Vlad
21
21
 
22
22
  ##
23
23
  # This is the version of Vlad you are running.
24
- VERSION = "2.5.1"
24
+ VERSION = "2.6.0"
25
25
 
26
26
  ##
27
27
  # Loads tasks file +tasks_file+ and various recipe styles as a hash
@@ -62,7 +62,7 @@ module Vlad
62
62
  begin
63
63
  require "vlad/#{recipe}"
64
64
  rescue LoadError => e
65
- re = RuntimeException.new e.message
65
+ re = RuntimeError.new e.message
66
66
  re.backtrace = e.backtrace
67
67
  raise re
68
68
  end
@@ -64,7 +64,15 @@ namespace :vlad do
64
64
  the update.".cleanup
65
65
 
66
66
  remote_task :update, :roles => :app do
67
- symlink = false
67
+ Rake::Task['vlad:update_app'].invoke
68
+ Rake::Task['vlad:update_symlinks'].invoke
69
+ Rake::Task['vlad:log_revision'].invoke
70
+ end
71
+
72
+ desc "Updates your application server to the latest revision. Syncs
73
+ a copy of the repository, exports it as the latest release".cleanup
74
+
75
+ remote_task :update_app, :roles => :app do
68
76
  begin
69
77
  commands = []
70
78
  commands << "umask #{umask}" if umask
@@ -88,16 +96,41 @@ namespace :vlad do
88
96
  commands << "chgrp -R #{perm_group} #{latest_release}" if perm_group
89
97
 
90
98
  run commands.join(" && ")
91
- Rake::Task['vlad:update_symlinks'].invoke
99
+ rescue => e
100
+ run "rm -rf #{release_path}"
101
+ raise e
102
+ end
103
+ end
104
+
105
+ desc "Updates up your symlinks, sets the latest revision to current and updates symlink for shared path".cleanup
92
106
 
93
- symlink = true
107
+ remote_task :update_symlinks, :roles => :app do
108
+ begin
109
+ ops = []
110
+ unless shared_paths.empty?
111
+ ops = shared_paths.each do |sp, rp|
112
+ ops << "ln -s #{shared_path}/#{sp} #{latest_release}/#{rp}"
113
+ end
114
+ end
115
+ ops << "rm -f #{current_path}"
116
+ ops << "ln -s #{latest_release} #{current_path}"
117
+ run ops.join(' && ') unless ops.empty?
118
+ rescue => e
119
+ run "rm -f #{current_path} && ln -s #{previous_release} #{current_path}"
120
+ run "rm -rf #{release_path}"
121
+ raise e
122
+ end
123
+ end
124
+
125
+ desc "Log the update".cleanup
126
+
127
+ remote_task :log_revision, :roles => :app do
128
+ begin
94
129
  commands = []
95
130
 
96
131
  commands << "umask #{umask}" if umask
97
132
 
98
133
  commands += [
99
- "rm -f #{current_path}",
100
- "ln -s #{latest_release} #{current_path}",
101
134
  "echo #{now} $USER #{revision} #{File.basename(release_path)} >> #{deploy_to}/revisions.log"
102
135
  ]
103
136
 
@@ -106,23 +139,12 @@ namespace :vlad do
106
139
 
107
140
  run commands.join(' && ')
108
141
  rescue => e
109
- run "rm -f #{current_path} && ln -s #{previous_release} #{current_path}" if
110
- symlink
142
+ run "rm -f #{current_path} && ln -s #{previous_release} #{current_path}"
111
143
  run "rm -rf #{release_path}"
112
144
  raise e
113
145
  end
114
146
  end
115
147
 
116
- desc "Updates the symlinks for shared paths".cleanup
117
-
118
- remote_task :update_symlinks, :roles => :app do
119
- unless shared_paths.empty?
120
- ops = shared_paths.map do |sp, rp|
121
- "ln -s #{shared_path}/#{sp} #{latest_release}/#{rp}"
122
- end
123
- run ops.join(' && ') unless ops.empty?
124
- end
125
- end
126
148
 
127
149
  desc "Invoke a single command on every remote server. This is useful for
128
150
  performing one-off commands that may not require a full task to be written
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vlad
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 5
9
- - 1
10
- version: 2.5.1
8
+ - 6
9
+ - 0
10
+ version: 2.6.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -38,7 +38,7 @@ cert_chain:
38
38
  FBHgymkyj/AOSqKRIpXPhjC6
39
39
  -----END CERTIFICATE-----
40
40
 
41
- date: 2013-06-21 00:00:00 Z
41
+ date: 2013-07-03 00:00:00 Z
42
42
  dependencies:
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rake
metadata.gz.sig CHANGED
Binary file