vidar 0.12.1 → 0.13.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65a53c3cc21b4ff76eb0f597403d3fa3749cbca4f4988b5240cfa61e98e39d4e
4
- data.tar.gz: 4577e63cd7604b7eb00014e63e589d1ce08b0be86d0b787078883a4fe1394aa0
3
+ metadata.gz: 8556383ed53d9322bd17288780b6bab8f53b03695c565f1527f3bc5d5322f2fa
4
+ data.tar.gz: 43090b370b977b36b2b0b40eb3218d51d092ac7ad26348f09855734d2c759052
5
5
  SHA512:
6
- metadata.gz: 68b2946ba783f8cf2db39d90040cbe64c00a825ef5ca116c2385c4c0b01632ab46cbc22ff8cf57d5cdf329188471f4d2660b5ec90cc63240d0b2391ea2d9359b
7
- data.tar.gz: de2f41706e11f1819d65d5c621e0e27b70186e8b66f081c8104b08e5677bdfc96cff1d5b8209efe0c3ebe1c9885a0441870fdc664702ff81e54a4184bd4ffda5
6
+ metadata.gz: d602b3ac6a099e9a51ca81ff285caa5d3067ce1bc2b41314ff6c84d824400695671fd1ba606c7aa16b56dde7e3d66843642d2a239638a3424bc3c1eabd9f073a
7
+ data.tar.gz: 88bba8dc5eae66dcfbd429802ef71dfab9b775d923e902f184a4642379120eaec6bc8c47cc9e8f9bc50af24895fbaee960371a2547618775c2c311befbc0b93a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vidar (0.12.1)
4
+ vidar (0.13.0)
5
5
  colorize
6
6
  faraday
7
7
  thor (~> 0.20)
data/lib/vidar/cli.rb CHANGED
@@ -113,15 +113,11 @@ module Vidar
113
113
  Log.info "Current kubectl context: #{Config.get!(:kubectl_context)}"
114
114
  Log.info "Checking if all containers in #{Config.get!(:namespace)} namespace(s) are ready..."
115
115
 
116
- deploy_config = Config.deploy_config
117
-
118
- Log.error "ERROR: could not find deployment config for #{Config.get!(:kubectl_context)} context" unless deploy_config
119
-
120
116
  slack_notification = SlackNotification.new(
121
117
  github: Config.get!(:github),
122
118
  revision: Config.get!(:revision),
123
119
  revision_name: Config.get!(:revision_name),
124
- deploy_config: deploy_config
120
+ deploy_config: Config.deploy_config
125
121
  )
126
122
 
127
123
  deploy_status = Vidar::DeployStatus.new(namespace: Config.get!(:namespace))
@@ -190,5 +186,18 @@ module Vidar
190
186
 
191
187
  sentry_notification.call if sentry_notification.configured?
192
188
  end
189
+
190
+ method_option :message, required: true
191
+ desc "notify_slack", "Send custom slack notification"
192
+ def notify_slack
193
+ slack_notification = SlackNotification.new(
194
+ github: Config.get!(:github),
195
+ revision: Config.get!(:revision),
196
+ revision_name: Config.get!(:revision_name),
197
+ deploy_config: Config.deploy_config
198
+ )
199
+
200
+ slack_notification.deliver(message: options[:message]) if slack_notification.configured?
201
+ end
193
202
  end
194
203
  end
data/lib/vidar/config.rb CHANGED
@@ -47,13 +47,14 @@ module Vidar
47
47
  end
48
48
 
49
49
  def deploy_config
50
- deployments = get(:deployments) || {}
51
-
52
- return nil unless deployments.is_a?(Hash)
53
-
54
- deployment = deployments[get!(:kubectl_context)]
55
-
56
- return nil unless deployment
50
+ deployments = get(:deployments)
51
+ deployments = {} unless deployments.is_a?(Hash)
52
+ deployment = deployments[get!(:kubectl_context)]
53
+
54
+ if deployment.nil?
55
+ Log.error "ERROR: could not find deployment config for #{get!(:kubectl_context)} context"
56
+ return nil
57
+ end
57
58
 
58
59
  deployment.transform_keys!(&:to_sym)
59
60
  deployment.transform_values! { |value| Vidar::Interpolation.call(value, self) }
@@ -2,13 +2,17 @@ module Vidar
2
2
  class DeployConfig
3
3
  SUCCESS_COLOR = "008800".freeze
4
4
  FAILURE_COLOR = "ff1100".freeze
5
+ DEFAULT_COLOR = "000000".freeze
5
6
 
6
- attr_reader :name, :url, :success_color, :failure_color, :slack_webhook_url, :sentry_webhook_url
7
+ attr_reader :name, :url,
8
+ :default_color, :success_color, :failure_color,
9
+ :slack_webhook_url, :sentry_webhook_url
7
10
 
8
11
  def initialize(options)
9
12
  @name = options.fetch(:name)
10
13
  @url = options.fetch(:url)
11
14
 
15
+ @default_color = options.fetch(:default_color, DEFAULT_COLOR)
12
16
  @success_color = options.fetch(:success_color, SUCCESS_COLOR)
13
17
  @failure_color = options.fetch(:failure_color, FAILURE_COLOR)
14
18
 
@@ -6,6 +6,7 @@ module Vidar
6
6
  @revision_name = revision_name
7
7
  @deploy_name = deploy_config.name
8
8
  @deploy_url = deploy_config.url
9
+ @default_color = deploy_config.default_color
9
10
  @success_color = deploy_config.success_color
10
11
  @failure_color = deploy_config.failure_color
11
12
  @webhook_url = deploy_config.slack_webhook_url
@@ -26,6 +27,10 @@ module Vidar
26
27
  perform_with data(message: message, color: success_color)
27
28
  end
28
29
 
30
+ def deliver(message:, color: default_color)
31
+ perform_with data(message: message, color: color)
32
+ end
33
+
29
34
  def perform_with(data)
30
35
  connection.post do |req|
31
36
  req.url webhook_url
@@ -38,7 +43,7 @@ module Vidar
38
43
 
39
44
  attr_reader :github, :revision, :revision_name,
40
45
  :deploy_name, :deploy_url, :webhook_url,
41
- :success_color, :failure_color,
46
+ :default_color, :success_color, :failure_color,
42
47
  :connection
43
48
 
44
49
  def data(message:, color:)
data/lib/vidar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vidar
2
- VERSION = '0.12.1'.freeze
2
+ VERSION = '0.13.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vidar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-11-29 00:00:00.000000000 Z
12
+ date: 2019-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize