capistrano-fanfare 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -69,6 +69,15 @@ looks like:
69
69
  role :db, deploy_server, :primary => true
70
70
  role :db, deploy_server
71
71
 
72
+ There are several optional recipes that need additional gems in your Gemfile:
73
+
74
+ gem 'airbrake'
75
+
76
+ group :development do
77
+ gem 'capistrano-fanfare'
78
+ gem 'capistrano-campfire'
79
+ end
80
+
72
81
  ## Contributing
73
82
 
74
83
  1. Fork it
@@ -30,6 +30,19 @@ module Capistrano::Fanfare::Campfire
30
30
  "Deployment started by #{ENV['USER']} failed, so attempting to roll back."
31
31
  end
32
32
 
33
+ set(:campfire_web_disable_msg) do
34
+ reason = ENV['REASON'] ? %{"#{ENV['REASON']}"} : "No reason given"
35
+ msg = [
36
+ "#{ENV['USER']} is bringing #{application}_#{deploy_env}",
37
+ "down into maintenance mode (#{reason})."
38
+ ]
39
+ msg.join(' ')
40
+ end
41
+
42
+ set(:campfire_web_enable_msg) do
43
+ "#{ENV['USER']} is bringing #{application}_#{deploy_env} back from maintenance mode."
44
+ end
45
+
33
46
  set :campfire_success_play, "pushit"
34
47
  set :campfire_fail_play, "trombone"
35
48
 
@@ -96,12 +109,28 @@ module Capistrano::Fanfare::Campfire
96
109
  speak fetch(:campfire_fail_msg)
97
110
  play fetch(:campfire_fail_play)
98
111
  end
112
+
113
+ desc <<-DESC
114
+ [internal] Posts a message in Campfire when the app is being brought down.
115
+ DESC
116
+ task :web_disable do
117
+ speak fetch(:campfire_web_disable_msg)
118
+ end
119
+
120
+ desc <<-DESC
121
+ [internal] Posts a message in Campfire when the app is being brought up.
122
+ DESC
123
+ task :web_enable do
124
+ speak fetch(:campfire_web_enable_msg)
125
+ end
99
126
  end
100
127
 
101
128
  unless ENV['QUIET'].to_i > 0
102
129
  before "deploy", "campfire:pre_deploy"
103
130
  after "deploy", "campfire:successful_deploy"
104
131
  after "deploy:migrations", "campfire:successful_deploy"
132
+ before "deploy:web:disable", "campfire:web_disable"
133
+ before "deploy:web:enable", "campfire:web_enable"
105
134
  end
106
135
 
107
136
  before 'deploy:rollback', 'campfire:rollback_deploy'
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Fanfare
3
- VERSION = "0.0.11"
3
+ VERSION = "0.0.12"
4
4
  end
5
5
  end
@@ -25,6 +25,8 @@ describe Capistrano::Fanfare::Campfire do
25
25
 
26
26
  ENV['_SPEC_USER'] = ENV['USER']
27
27
  ENV['USER'] = 'filbert'
28
+ ENV['_SPEC_REASON'] = ENV['REASON']
29
+ ENV['REASON'] = "to deal with the tribbles"
28
30
 
29
31
  @config.load do
30
32
  def puts(msg)
@@ -42,6 +44,7 @@ describe Capistrano::Fanfare::Campfire do
42
44
 
43
45
  after do
44
46
  ENV['USER'] = ENV.delete('_SPEC_USER')
47
+ ENV['REASON'] = ENV.delete('_SPEC_REASON')
45
48
  end
46
49
 
47
50
  describe "for variables" do
@@ -64,6 +67,23 @@ describe Capistrano::Fanfare::Campfire do
64
67
  "Deployment started by filbert failed, so attempting to roll back.")
65
68
  end
66
69
 
70
+ it "sets :campfire_web_disable_msg to a known default containing the reason given" do
71
+ @config.set :application, 'wazup'
72
+ @config.set :deploy_env, 'staging'
73
+
74
+ @config.fetch(:campfire_web_disable_msg).must_equal([
75
+ 'filbert is bringing wazup_staging down into maintenance mode',
76
+ '("to deal with the tribbles").'].join(' '))
77
+ end
78
+
79
+ it "sets :campfire_web_enable to a known default" do
80
+ @config.set :application, 'wazup'
81
+ @config.set :deploy_env, 'staging'
82
+
83
+ @config.fetch(:campfire_web_enable_msg).must_equal(
84
+ "filbert is bringing wazup_staging back from maintenance mode.")
85
+ end
86
+
67
87
  it "sets :campfire_success_play to 'pushit'" do
68
88
  @config.fetch(:campfire_success_play).must_equal "pushit"
69
89
  end
@@ -188,5 +208,31 @@ describe Capistrano::Fanfare::Campfire do
188
208
  @config.must_have_callback_before "deploy:rollback", "campfire:rollback_deploy"
189
209
  end
190
210
  end
211
+
212
+ describe "task :web_disable" do
213
+ it "prints a message in campfire" do
214
+ @config.set :campfire_web_disable_msg, "website offline"
215
+ @config.find_and_execute_task("campfire:web_disable")
216
+
217
+ @config.campfire_room.speaks.first.must_equal "website offline"
218
+ end
219
+
220
+ it "gets called before deploy task" do
221
+ @config.must_have_callback_before "deploy:web:disable", "campfire:web_disable"
222
+ end
223
+ end
224
+
225
+ describe "task :web_enable" do
226
+ it "prints a message in campfire" do
227
+ @config.set :campfire_web_enable_msg, "we're back baby"
228
+ @config.find_and_execute_task("campfire:web_enable")
229
+
230
+ @config.campfire_room.speaks.first.must_equal "we're back baby"
231
+ end
232
+
233
+ it "gets called before deploy task" do
234
+ @config.must_have_callback_before "deploy:web:enable", "campfire:web_enable"
235
+ end
236
+ end
191
237
  end
192
238
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-fanfare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-26 00:00:00.000000000 Z
12
+ date: 2012-01-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
- requirement: &70278694434700 !ruby/object:Gem::Requirement
16
+ requirement: &70350802170640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.10.0.pre
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70278694434700
24
+ version_requirements: *70350802170640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: capistrano_colors
27
- requirement: &70278694433320 !ruby/object:Gem::Requirement
27
+ requirement: &70350802168720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70278694433320
35
+ version_requirements: *70350802168720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sushi
38
- requirement: &70278694432500 !ruby/object:Gem::Requirement
38
+ requirement: &70350802167240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.0.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70278694432500
46
+ version_requirements: *70350802167240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &70278694431560 !ruby/object:Gem::Requirement
49
+ requirement: &70350802165960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.10.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70278694431560
57
+ version_requirements: *70350802165960
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest-capistrano
60
- requirement: &70278694429240 !ruby/object:Gem::Requirement
60
+ requirement: &70350802165060 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70278694429240
68
+ version_requirements: *70350802165060
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: timecop
71
- requirement: &70278694421860 !ruby/object:Gem::Requirement
71
+ requirement: &70350802163540 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0.3'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70278694421860
79
+ version_requirements: *70350802163540
80
80
  description: Capistrano recipes (with full test suite) for fanfare application deployment
81
81
  framework
82
82
  email:
@@ -144,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  segments:
146
146
  - 0
147
- hash: 1153374831594208695
147
+ hash: 1544583041495729694
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  segments:
155
155
  - 0
156
- hash: 1153374831594208695
156
+ hash: 1544583041495729694
157
157
  requirements: []
158
158
  rubyforge_project:
159
159
  rubygems_version: 1.8.10