vidar 0.12.1 → 0.13.0

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
  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