kitchen_hooks 2.0.1 → 2.0.2
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 +4 -4
- data/Readme.md +1 -0
- data/VERSION +1 -1
- data/lib/kitchen_hooks/app.rb +6 -1
- data/lib/kitchen_hooks/helpers.rb +33 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba54f91fdcaa672cb23cc618b70e3ce6146f7f5e
|
4
|
+
data.tar.gz: 11d5dbebc002f951ed058746c9dd04a4c7a3dcd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e5b28855dc3075f3ccb71c927d8dcd850d7b2542cdb6db1324a43d3be67d8e1953229901f5c56991bab810d884229150cccb075b9f88cec11ab04ab096d9439
|
7
|
+
data.tar.gz: 12859577b41a687be8f2d37af00dcd220cbfcefc9066185dfdd97ae615cf305b02d0b40564e74c5cf1cc12d282668af012e709b2fa472d6297045a12a989d392
|
data/Readme.md
CHANGED
@@ -100,6 +100,7 @@ The configuration file is just JSON. Hopefully it's obvious:
|
|
100
100
|
"token": "your_v1_api_token"
|
101
101
|
},
|
102
102
|
"git_protocol": "daemon",
|
103
|
+
"cookbook_upload_method": "berkshelf",
|
103
104
|
"knives": {
|
104
105
|
"user": "~/.chef/knife.rb",
|
105
106
|
"system": "/etc/chef/knife.rb",
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.2
|
data/lib/kitchen_hooks/app.rb
CHANGED
@@ -65,6 +65,7 @@ module KitchenHooks
|
|
65
65
|
@@hipchat_room = config['hipchat']['room'] || raise('No HipChat "room" provided')
|
66
66
|
end
|
67
67
|
@@git_protocol = config.fetch('git_protocol', 'daemon')
|
68
|
+
@@cookbook_upload_method = config.fetch('cookbook_upload_method', 'berkshelf')
|
68
69
|
@@knives = config['knives'].map do |_, knife|
|
69
70
|
Pathname.new(knife).expand_path.realpath.to_s
|
70
71
|
end
|
@@ -208,7 +209,11 @@ module KitchenHooks
|
|
208
209
|
if tagged_commit_to_cookbook?(event) &&
|
209
210
|
tag_name(event) =~ /^v?\d+/ # Cookbooks tagged with a version
|
210
211
|
possible_error = begin
|
211
|
-
|
212
|
+
if @@cookbook_upload_method == 'berkshelf'
|
213
|
+
perform_cookbook_upload event, knives
|
214
|
+
else
|
215
|
+
perform_knife_cookbook_upload event, knives
|
216
|
+
end
|
212
217
|
rescue Exception => e
|
213
218
|
report_error e, 'Could not perform cookbook upload: <i>%s</i>' % e.message.lines.first
|
214
219
|
end
|
@@ -113,6 +113,39 @@ module KitchenHooks
|
|
113
113
|
end
|
114
114
|
|
115
115
|
|
116
|
+
def self.perform_knife_cookbook_upload event, knives
|
117
|
+
$stdout.puts 'started perform_cookbook_upload event=%s, knives=%s' % [
|
118
|
+
event['after'], knives.inspect
|
119
|
+
]
|
120
|
+
|
121
|
+
tmp_clone event, :tagged_commit do |clone|
|
122
|
+
tagged_version = tag_name(event).delete('v')
|
123
|
+
if File.exist? File.join(clone, 'VERSION')
|
124
|
+
cookbook_version = File.read(File.join(clone, 'VERSION')).strip
|
125
|
+
else
|
126
|
+
cookbook_version = File.foreach(File.join(clone, 'metadata.rb')).grep(/version/)[0][/\"(.*)\"/,1]
|
127
|
+
end
|
128
|
+
unless tagged_version == cookbook_version
|
129
|
+
raise 'Tagged version does not match cookbook version'
|
130
|
+
end
|
131
|
+
|
132
|
+
Dir.chdir clone do
|
133
|
+
$stdout.puts 'Uploading cookbook'
|
134
|
+
begin
|
135
|
+
with_each_knife_do "cookbook upload #{cookbook_name event} -o .. --freeze", knives
|
136
|
+
rescue => e
|
137
|
+
unless e.to_s =~ /frozen/i # Ignore frozen cookbooks already uploaded
|
138
|
+
raise "Knife exited unsuccessfully: #{e}"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
$stdout.puts "finished cookbook_upload: #{event['after']}"
|
145
|
+
return # no error
|
146
|
+
end
|
147
|
+
|
148
|
+
|
116
149
|
def self.perform_cookbook_upload event, knives
|
117
150
|
$stdout.puts 'started perform_cookbook_upload event=%s, knives=%s' % [
|
118
151
|
event['after'], knives.inspect
|
@@ -149,16 +182,6 @@ module KitchenHooks
|
|
149
182
|
end
|
150
183
|
|
151
184
|
Dir.chdir clone do
|
152
|
-
# N.B. Knife uploading the cookbook should be unnecessary thanks to Berkshelf...
|
153
|
-
# $stdout.puts 'Uploading cookbook'
|
154
|
-
# begin
|
155
|
-
# with_each_knife_do "cookbook upload #{cookbook_name event} -o .. --freeze", knives
|
156
|
-
# rescue => e
|
157
|
-
# unless e.to_s =~ /frozen/i # Ignore frozen cookbooks already uploaded
|
158
|
-
# raise "Knife exited unsuccessfully: #{e}"
|
159
|
-
# end
|
160
|
-
# end
|
161
|
-
|
162
185
|
if commit_to_realm? event
|
163
186
|
$stdout.puts 'Uploading bundled roles, environments, and data bags'
|
164
187
|
kitchen_upload knives
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen_hooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Clemmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hipchat
|