slackistrano 3.1.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d891ead9a14e52f513c70e7905dfa3de294d36ed
4
- data.tar.gz: 2dec79d72b750fff77079215b7dd5b293f51fd36
3
+ metadata.gz: cbbeeb277ed313e84f791d5409e0b04a4248fb55
4
+ data.tar.gz: feca4860c223fc8bc4efcd769e12aa777574251a
5
5
  SHA512:
6
- metadata.gz: 91d458c418bcd749f61c0cd800df1bdea4cf18bfd000e233efdb1e86bf180372fc85febccc75f9c2d4796e0121b5053ef3201dff41653ac50797dd96504eda0c
7
- data.tar.gz: 33bd17a7aaa7d47ae27571058b722b060e707ff14fca3f57bb1e4fc8c721c708e1e578e36b84d7dd44873fcfb2b9b7ab3c0d2d71889bbf63ead15b0e476e4430
6
+ metadata.gz: f21d78cd5de97d8f59934f2ab96f4765a196ca2f9accee82b13d7277803a772e8c7268610e895ec148794d490316cd836ef53a4009da6a4116bf06a96f4cf3c3
7
+ data.tar.gz: 7df8a8d6f66711c65d00791706bbb09fe662b3c9011846c166797a663b4fb8f8a014e20afa6d16d542f151396eff7042d2dd901ae9b6fec905f05ed3f9fe1468
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Slackistrano Change Log
2
2
 
3
+ 3.1.1
4
+ -----
5
+
6
+ - Allow easily disabling Slackistrano by setting :slackistrano to false [#67]
7
+
3
8
  3.1.0
4
9
  -----
5
10
 
data/README.md CHANGED
@@ -101,12 +101,12 @@ module Slackistrano
101
101
  end
102
102
  end
103
103
 
104
- # Supress updating message.
104
+ # Suppress updating message.
105
105
  def payload_for_updating
106
106
  nil
107
107
  end
108
108
 
109
- # Supress reverting message.
109
+ # Suppress reverting message.
110
110
  def payload_for_reverting
111
111
  nil
112
112
  end
@@ -190,6 +190,15 @@ To set this up:
190
190
  an issue along with a screenshot of the output from `cap production
191
191
  slack:deploy:test` and I'll add it to the Wiki.
192
192
 
193
+ ## Disabling posting to Slack
194
+
195
+ You can disable deployment notifications to a specific stage by setting the `:slackistrano`
196
+ configuration variable to `false` instead of actual settings.
197
+
198
+ ```ruby
199
+ set :slackistrano, false
200
+ ```
201
+
193
202
  ## TODO
194
203
 
195
204
  - Notify about incorrect configuration settings.
@@ -16,8 +16,11 @@ module Slackistrano
16
16
 
17
17
  def initialize(env)
18
18
  @env = env
19
- opts = fetch(:slackistrano, {}).dup
20
- @messaging = if opts.empty?
19
+ config = fetch(:slackistrano, {})
20
+ @messaging = case config
21
+ when false
22
+ Messaging::Null.new
23
+ when -> (o) { o.empty? }
21
24
  klass = Messaging::Deprecated.new(
22
25
  env: @env,
23
26
  team: fetch(:slack_team),
@@ -26,8 +29,9 @@ module Slackistrano
26
29
  webhook: fetch(:slack_webhook)
27
30
  )
28
31
  else
32
+ opts = config.dup.merge(env: @env)
29
33
  klass = opts.delete(:klass) || Messaging::Default
30
- klass.new(opts.merge(env: @env))
34
+ klass.new(opts)
31
35
  end
32
36
  end
33
37
 
@@ -71,3 +71,4 @@ end
71
71
 
72
72
  require_relative 'default'
73
73
  require_relative 'deprecated'
74
+ require_relative 'null'
@@ -0,0 +1,25 @@
1
+ module Slackistrano
2
+ module Messaging
3
+ class Null < Base
4
+ def payload_for_updating
5
+ nil
6
+ end
7
+
8
+ def payload_for_reverting
9
+ nil
10
+ end
11
+
12
+ def payload_for_updated
13
+ nil
14
+ end
15
+
16
+ def payload_for_reverted
17
+ nil
18
+ end
19
+
20
+ def payload_for_failed
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,26 +1,32 @@
1
1
  namespace :slack do
2
2
  namespace :deploy do
3
3
 
4
+ desc 'Notify about updating deploy'
4
5
  task :updating do
5
6
  Slackistrano::Capistrano.new(self).run(:updating)
6
7
  end
7
8
 
9
+ desc 'Notify about reverting deploy'
8
10
  task :reverting do
9
11
  Slackistrano::Capistrano.new(self).run(:reverting)
10
12
  end
11
13
 
14
+ desc 'Notify about updated deploy'
12
15
  task :updated do
13
16
  Slackistrano::Capistrano.new(self).run(:updated)
14
17
  end
15
18
 
19
+ desc 'Notify about reverted deploy'
16
20
  task :reverted do
17
21
  Slackistrano::Capistrano.new(self).run(:reverted)
18
22
  end
19
23
 
24
+ desc 'Notify about failed deploy'
20
25
  task :failed do
21
26
  Slackistrano::Capistrano.new(self).run(:failed)
22
27
  end
23
28
 
29
+ desc 'Test Slack integration'
24
30
  task :test => %i[updating updated reverting reverted failed] do
25
31
  # all tasks run as dependencies
26
32
  end
@@ -1,3 +1,3 @@
1
1
  module Slackistrano
2
- VERSION = '3.1.0'
2
+ VERSION = '3.1.1'
3
3
  end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Slackistrano do
4
+ context "when :slackistrano is :disabled" do
5
+ before(:all) do
6
+ set :slackistrano, false
7
+ end
8
+
9
+ %w[updating reverting updated reverted failed].each do |stage|
10
+ it "doesn't post on slack:deploy:#{stage}" do
11
+ expect_any_instance_of(Slackistrano::Capistrano).not_to receive(:post)
12
+ Rake::Task["slack:deploy:#{stage}"].execute
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Slackistrano::Messaging::Null do
4
+ subject(:messaging) { Slackistrano::Messaging::Null.new }
5
+
6
+ %w[updating reverting updated reverted failed].each do |stage|
7
+ it "returns no payload for on #{stage}" do
8
+ expect(messaging.payload_for(stage)).to be_nil
9
+ end
10
+ end
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slackistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Hallstrom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-08 00:00:00.000000000 Z
11
+ date: 2017-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -88,13 +88,16 @@ files:
88
88
  - lib/slackistrano/messaging/default.rb
89
89
  - lib/slackistrano/messaging/deprecated.rb
90
90
  - lib/slackistrano/messaging/helpers.rb
91
+ - lib/slackistrano/messaging/null.rb
91
92
  - lib/slackistrano/tasks/slack.rake
92
93
  - lib/slackistrano/version.rb
93
94
  - slackistrano.gemspec
94
95
  - spec/capistrano_deploy_stubs.rake
96
+ - spec/disabling_posting_to_slack_spec.rb
95
97
  - spec/dry_run_spec.rb
96
98
  - spec/messaging/deprecated_spec.rb
97
99
  - spec/messaging/helpers_spec.rb
100
+ - spec/messaging/null_spec.rb
98
101
  - spec/nil_payload_spec.rb
99
102
  - spec/posting_to_multiple_channels_spec.rb
100
103
  - spec/spec_helper.rb
@@ -123,15 +126,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
126
  version: '0'
124
127
  requirements: []
125
128
  rubyforge_project:
126
- rubygems_version: 2.5.1
129
+ rubygems_version: 2.5.2
127
130
  signing_key:
128
131
  specification_version: 4
129
132
  summary: Send notifications to Slack about Capistrano deployments.
130
133
  test_files:
131
134
  - spec/capistrano_deploy_stubs.rake
135
+ - spec/disabling_posting_to_slack_spec.rb
132
136
  - spec/dry_run_spec.rb
133
137
  - spec/messaging/deprecated_spec.rb
134
138
  - spec/messaging/helpers_spec.rb
139
+ - spec/messaging/null_spec.rb
135
140
  - spec/nil_payload_spec.rb
136
141
  - spec/posting_to_multiple_channels_spec.rb
137
142
  - spec/spec_helper.rb