capistrano-fanfare 0.0.11 → 0.0.12
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.md +9 -0
- data/lib/capistrano/fanfare/campfire.rb +29 -0
- data/lib/capistrano/fanfare/version.rb +1 -1
- data/spec/campfire_spec.rb +46 -0
- metadata +16 -16
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'
|
data/spec/campfire_spec.rb
CHANGED
|
@@ -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.
|
|
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-
|
|
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: &
|
|
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: *
|
|
24
|
+
version_requirements: *70350802170640
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: capistrano_colors
|
|
27
|
-
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: *
|
|
35
|
+
version_requirements: *70350802168720
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: sushi
|
|
38
|
-
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: *
|
|
46
|
+
version_requirements: *70350802167240
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: minitest
|
|
49
|
-
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: *
|
|
57
|
+
version_requirements: *70350802165960
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: minitest-capistrano
|
|
60
|
-
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: *
|
|
68
|
+
version_requirements: *70350802165060
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: timecop
|
|
71
|
-
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: *
|
|
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:
|
|
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:
|
|
156
|
+
hash: 1544583041495729694
|
|
157
157
|
requirements: []
|
|
158
158
|
rubyforge_project:
|
|
159
159
|
rubygems_version: 1.8.10
|