capistrano-pushover 0.0.2 → 0.1
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/.rspec +1 -0
- data/README.md +1 -1
- data/capistrano-pushover.gemspec +2 -0
- data/lib/capistrano-pushover.rb +61 -51
- data/lib/capistrano-pushover/version.rb +1 -1
- data/spec/capistrano-pushover_spec.rb +75 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/support/capistrano.rb +6 -0
- metadata +44 -5
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/README.md
CHANGED
@@ -23,7 +23,7 @@ Add to deploy.rb:
|
|
23
23
|
require 'hipchat/capistrano'
|
24
24
|
|
25
25
|
set :pushover_app_token, 'Your Pushover Application Token'
|
26
|
-
set :
|
26
|
+
set :pushover_user_key, 'Your Pushover User Token'
|
27
27
|
|
28
28
|
Now you are ready to recieve notificaion about deploys.
|
29
29
|
|
data/capistrano-pushover.gemspec
CHANGED
data/lib/capistrano-pushover.rb
CHANGED
@@ -1,74 +1,84 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
1
|
+
require 'capistrano'
|
2
|
+
require 'capistrano-pushover/version'
|
3
|
+
require 'rushover'
|
4
4
|
|
5
5
|
module Capistrano
|
6
6
|
module Pushover
|
7
|
-
|
8
|
-
|
9
|
-
set :pushover_with_migrations, false
|
7
|
+
def self.load_into(configuration)
|
8
|
+
configuration.load do
|
10
9
|
|
11
|
-
|
10
|
+
set :pushover_with_migrations, false
|
12
11
|
|
13
|
-
|
14
|
-
set :pushover_client, Rushover::Client.new(pushover_app_token)
|
15
|
-
set :pushover_user, Rushover::User.new(pusehover_user_key, pushover_client)
|
16
|
-
end
|
12
|
+
namespace :pushover do
|
17
13
|
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
task :set_user do
|
15
|
+
set :pushover_client, Rushover::Client.new(pushover_app_token)
|
16
|
+
set :pushover_user, Rushover::User.new(pushover_user_key, pushover_client)
|
17
|
+
end
|
21
18
|
|
22
|
-
|
23
|
-
|
24
|
-
pushover_user.notify("#{human} cancelled deployment of #{deployment_name} to #{env}.", :title => "#{application} cancelled deployment", :priority => 1)
|
19
|
+
task :configure_for_migrations do
|
20
|
+
set :pushover_with_migrations, true
|
25
21
|
end
|
26
22
|
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
task :notify_deploy_started do
|
24
|
+
on_rollback do
|
25
|
+
notify("#{human} cancelled deployment of #{deployment_name} to #{env}.", :title => "#{application} cancelled deployment", :priority => 1)
|
26
|
+
end
|
30
27
|
|
31
|
-
|
32
|
-
|
28
|
+
message = "#{human} is deploying #{deployment_name} to #{env}"
|
29
|
+
message << " (with migrations)" if pushover_with_migrations
|
30
|
+
message << "."
|
33
31
|
|
34
|
-
|
35
|
-
|
36
|
-
end
|
32
|
+
notify(message, :title => "#{application} started deploying", :priority => priority)
|
33
|
+
end
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
35
|
+
task :notify_deploy_finished do
|
36
|
+
notify("#{human} finished deploying #{deployment_name} to #{env}.", :title => "#{application} finished deploying", :priority => priority)
|
37
|
+
end
|
41
38
|
|
42
|
-
|
43
|
-
|
44
|
-
"#{application}/#{branch}"
|
45
|
-
else
|
46
|
-
application
|
39
|
+
def notify(message, options = {})
|
40
|
+
pushover_user.notify message, options
|
47
41
|
end
|
48
|
-
end
|
49
42
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
43
|
+
def priority
|
44
|
+
fetch(:pushover_priority, 0)
|
45
|
+
end
|
46
|
+
|
47
|
+
def deployment_name
|
48
|
+
if branch
|
49
|
+
"#{application}/#{branch}"
|
56
50
|
else
|
57
|
-
|
51
|
+
application
|
58
52
|
end
|
59
|
-
|
53
|
+
end
|
60
54
|
|
61
|
-
|
62
|
-
|
63
|
-
|
55
|
+
def human
|
56
|
+
ENV['PUSHOVER_USER'] ||
|
57
|
+
if (u = %x{git config user.name}.strip) != ""
|
58
|
+
u
|
59
|
+
elsif (u = ENV['USER']) != ""
|
60
|
+
u
|
61
|
+
else
|
62
|
+
"Someone"
|
63
|
+
end
|
64
|
+
end
|
64
65
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
after "deploy", "pushover:notify_deploy_finished"
|
69
|
-
after "deploy:migrations", "pushover:notify_deploy_finished"
|
70
|
-
end
|
66
|
+
def env
|
67
|
+
fetch(:pushover_env, fetch(:rack_env, fetch(:rails_env, "production")))
|
68
|
+
end
|
71
69
|
|
70
|
+
before "pushover:notify_deploy_started", "pushover:set_user"
|
71
|
+
before "deploy:migrations", "pushover:configure_for_migrations"
|
72
|
+
before "deploy:update_code", "pushover:notify_deploy_started"
|
73
|
+
after "deploy", "pushover:notify_deploy_finished"
|
74
|
+
after "deploy:migrations", "pushover:notify_deploy_finished"
|
75
|
+
end
|
76
|
+
end
|
72
77
|
end
|
73
78
|
end
|
74
79
|
end
|
80
|
+
|
81
|
+
# may as well load it if we have it
|
82
|
+
if Capistrano::Configuration.instance
|
83
|
+
Capistrano::Pushover.load_into(Capistrano::Configuration.instance)
|
84
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe Capistrano::Pushover, "loaded into a configuration" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@configuration = Capistrano::Configuration.new
|
7
|
+
Capistrano::Pushover.load_into(@configuration)
|
8
|
+
|
9
|
+
@configuration.set :pushover_app_token, 'foo'
|
10
|
+
@configuration.set :pushover_user_key, 'bar'
|
11
|
+
@configuration.set :application, 'worldrelaxation'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "makes sure the configuration variables exits" do
|
15
|
+
@configuration.fetch(:pushover_app_token).should == 'foo'
|
16
|
+
@configuration.fetch(:pushover_user_key).should == 'bar'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "defines pushover:notify_deploy_started" do
|
20
|
+
@configuration.find_task('pushover:notify_deploy_started').should_not == nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it "defines pushover:notify_deploy_finished" do
|
24
|
+
@configuration.find_task('pushover:notify_deploy_finished').should_not == nil
|
25
|
+
end
|
26
|
+
|
27
|
+
it "defines pushover:configure_for_migrations" do
|
28
|
+
@configuration.find_task('pushover:configure_for_migrations').should_not == nil
|
29
|
+
end
|
30
|
+
|
31
|
+
it "defines pushover:set_user" do
|
32
|
+
@configuration.find_task('pushover:set_user').should_not == nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it "before pushover:notify_deploy_started performs pushover:set_user" do
|
36
|
+
@configuration.should callback('pushover:set_user').before('pushover:notify_deploy_started')
|
37
|
+
end
|
38
|
+
|
39
|
+
it "before deploy:migrations performs pushover:configure_for_migrations" do
|
40
|
+
@configuration.should callback('pushover:configure_for_migrations').before('deploy:migrations')
|
41
|
+
end
|
42
|
+
|
43
|
+
it "before deploy:update_code performs pushover:notify_deploy_started" do
|
44
|
+
@configuration.should callback('pushover:notify_deploy_started').before('deploy:update_code')
|
45
|
+
end
|
46
|
+
|
47
|
+
it "after deploy performs pushover:notify_deploy_finished" do
|
48
|
+
@configuration.should callback('pushover:notify_deploy_finished').after('deploy')
|
49
|
+
end
|
50
|
+
|
51
|
+
it "after deploy:migrations performs pushover:notify_deploy_finished" do
|
52
|
+
@configuration.should callback('pushover:notify_deploy_finished').after('deploy')
|
53
|
+
end
|
54
|
+
|
55
|
+
it "pushover:notify_deploy_started notifing the user deploying and the branch being deployed to production" do
|
56
|
+
@configuration.set(:branch, :bar)
|
57
|
+
notification = mock('Pushover')
|
58
|
+
Rushover::Client.stub(:new).and_return(notification)
|
59
|
+
ENV['PUSHOVER_USER'] = 'foobaruser'
|
60
|
+
notification.should_receive(:notify).with("bar", "foobaruser is deploying worldrelaxation/bar to production.", {:title=>"worldrelaxation started deploying", :priority=>0})
|
61
|
+
@configuration.find_and_execute_task('pushover:notify_deploy_started')
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
it "pushover:notify_deploy_finished notifing the user who deployed and the branch that was deployed to production" do
|
66
|
+
@configuration.set(:branch, :bar)
|
67
|
+
notification = mock('Pushover')
|
68
|
+
Rushover::Client.stub(:new).and_return(notification)
|
69
|
+
ENV['PUSHOVER_USER'] = 'foobaruser'
|
70
|
+
notification.should_receive(:notify).with("bar", "foobaruser finished deploying worldrelaxation/bar to production.", {:title=>"worldrelaxation finished deploying", :priority=>0})
|
71
|
+
@configuration.find_and_execute_task('pushover:set_user')
|
72
|
+
@configuration.find_and_execute_task('pushover:notify_deploy_finished')
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
begin
|
3
|
+
Bundler.setup(:default, :development)
|
4
|
+
rescue Bundler::BundlerError => e
|
5
|
+
$stderr.puts e.message
|
6
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
7
|
+
exit e.status_code
|
8
|
+
end
|
9
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
10
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
+
require 'capistrano-pushover'
|
12
|
+
require 'rspec'
|
13
|
+
require 'rspec/autorun'
|
14
|
+
|
15
|
+
# Requires supporting files with custom matchers and macros, etc,
|
16
|
+
# in ./support/ and its subdirectories.
|
17
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
18
|
+
|
19
|
+
RSpec.configure do |config|
|
20
|
+
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-pushover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -43,6 +43,38 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: capistrano-spec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: capistrano
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
46
78
|
- !ruby/object:Gem::Dependency
|
47
79
|
name: rushover
|
48
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,6 +99,7 @@ extensions: []
|
|
67
99
|
extra_rdoc_files: []
|
68
100
|
files:
|
69
101
|
- .gitignore
|
102
|
+
- .rspec
|
70
103
|
- .rvmrc
|
71
104
|
- Gemfile
|
72
105
|
- LICENSE
|
@@ -75,6 +108,9 @@ files:
|
|
75
108
|
- capistrano-pushover.gemspec
|
76
109
|
- lib/capistrano-pushover.rb
|
77
110
|
- lib/capistrano-pushover/version.rb
|
111
|
+
- spec/capistrano-pushover_spec.rb
|
112
|
+
- spec/spec_helper.rb
|
113
|
+
- spec/support/capistrano.rb
|
78
114
|
homepage: https://github.com/shukydvir/capistrano-pushover
|
79
115
|
licenses: []
|
80
116
|
post_install_message:
|
@@ -89,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
125
|
version: '0'
|
90
126
|
segments:
|
91
127
|
- 0
|
92
|
-
hash:
|
128
|
+
hash: 1169079496221250501
|
93
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
130
|
none: false
|
95
131
|
requirements:
|
@@ -98,11 +134,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
134
|
version: '0'
|
99
135
|
segments:
|
100
136
|
- 0
|
101
|
-
hash:
|
137
|
+
hash: 1169079496221250501
|
102
138
|
requirements: []
|
103
139
|
rubyforge_project:
|
104
140
|
rubygems_version: 1.8.24
|
105
141
|
signing_key:
|
106
142
|
specification_version: 3
|
107
143
|
summary: Send deploy notification to Pushover
|
108
|
-
test_files:
|
144
|
+
test_files:
|
145
|
+
- spec/capistrano-pushover_spec.rb
|
146
|
+
- spec/spec_helper.rb
|
147
|
+
- spec/support/capistrano.rb
|