dapp 0.5.12 → 0.5.13
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/config/en/common.yml +2 -1
- data/lib/dapp/builder/chef.rb +44 -21
- data/lib/dapp/builder/shell.rb +1 -2
- data/lib/dapp/version.rb +1 -1
- 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: 01676cf63c920ea0e92fe63a31a56b6675bc6292
|
4
|
+
data.tar.gz: 3301444d6c80446d4c1e692e941627db4ed3b60f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc8a5ab0d2441d9382e7cd4a1f2f6f1d5cec834c040e31130ce47f76cbfbc2e632d4f557066655bb40e6f0201edf5a4ad54eb701c7c10e99c913d30ee24e8ef0
|
7
|
+
data.tar.gz: cc7078af0e3daa91ab5062538d64ad72cff9b4e87eeee7a0668ed33c19442c4cee2f1a44025265d7d44ff4656c1d176d519cbb80f91a99924d6fe03f52bcf4d4
|
data/config/en/common.yml
CHANGED
@@ -12,7 +12,8 @@ en:
|
|
12
12
|
artifact_building: "building artifact '%{name}'"
|
13
13
|
git_artifact_clone: "cloning remote git_artifact '%{name}'"
|
14
14
|
git_artifact_fetch: "fetching remote git_artifact '%{name}'"
|
15
|
-
berks_vendor: '
|
15
|
+
berks_vendor: 'vendoring cookbooks'
|
16
|
+
chef_cookbooks_stage_berks_vendor: 'vendoring cookbooks for chef cookbooks stage'
|
16
17
|
gitartifact_container_loading: 'loading dappdeps/gitartifact container'
|
17
18
|
chefdk_container_loading: 'loading dappdeps/chefdk container'
|
18
19
|
system_shellout_container_loading: 'loading system shellout container'
|
data/lib/dapp/builder/chef.rb
CHANGED
@@ -21,8 +21,6 @@ module Dapp
|
|
21
21
|
define_method("#{stage}") do |image|
|
22
22
|
unless stage_empty?(stage)
|
23
23
|
image.add_volumes_from(chefdk_container)
|
24
|
-
image.add_command "export DAPP_BUILD_STAGE=#{stage}"
|
25
|
-
|
26
24
|
image.add_volume "#{stage_build_path(stage)}:#{container_stage_build_path(stage)}:ro"
|
27
25
|
image.add_command ['/.dapp/deps/chefdk/bin/chef-solo',
|
28
26
|
'--legacy-mode',
|
@@ -37,7 +35,7 @@ module Dapp
|
|
37
35
|
end
|
38
36
|
|
39
37
|
def chef_cookbooks(image)
|
40
|
-
image.add_volume "#{cookbooks_vendor_path}:#{application.container_dapp_path('chef_vendored_cookbooks')}"
|
38
|
+
image.add_volume "#{cookbooks_vendor_path(chef_cookbooks_stage: true)}:#{application.container_dapp_path('chef_vendored_cookbooks')}"
|
41
39
|
image.add_command(
|
42
40
|
'mkdir -p /usr/share/dapp/chef_repo',
|
43
41
|
["cp -a #{application.container_dapp_path('chef_vendored_cookbooks')} ",
|
@@ -155,41 +153,61 @@ module Dapp
|
|
155
153
|
end
|
156
154
|
|
157
155
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
158
|
-
def install_cookbooks
|
156
|
+
def install_cookbooks(dest_path, chef_cookbooks_stage: false)
|
159
157
|
volumes_from = chefdk_container
|
160
|
-
application.log_secondary_process(application.t(code: '
|
158
|
+
application.log_secondary_process(application.t(code: "process.#{chef_cookbooks_stage ? 'chef_cookbooks_stage_berks_vendor' : 'berks_vendor'}")) do
|
161
159
|
ssh_auth_socket_path = nil
|
162
160
|
ssh_auth_socket_path = Pathname.new(ENV['SSH_AUTH_SOCK']).expand_path if ENV['SSH_AUTH_SOCK'] && File.exist?(ENV['SSH_AUTH_SOCK'])
|
163
161
|
|
164
|
-
|
162
|
+
before_berks_vendor = [
|
165
163
|
'mkdir -p ~/.ssh',
|
166
164
|
'echo "Host *" >> ~/.ssh/config',
|
167
165
|
'echo " StrictHostKeyChecking no" >> ~/.ssh/config',
|
168
|
-
'if [ ! -f Berksfile.lock ] ; then echo "Berksfile.lock not found"
|
169
|
-
'cp -a Berksfile.lock /tmp/Berksfile.lock.orig'
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
166
|
+
('if [ ! -f Berksfile.lock ] ; then echo "Berksfile.lock not found" 2>&2 ; exit 1 ; fi' unless chef_cookbooks_stage),
|
167
|
+
'if [ -f Berksfile.lock ] ; then cp -a Berksfile.lock /tmp/Berksfile.lock.orig ; fi'
|
168
|
+
]
|
169
|
+
|
170
|
+
after_berks_vendor = []
|
171
|
+
if chef_cookbooks_stage
|
172
|
+
after_berks_vendor.concat [
|
173
|
+
'cp -a /tmp/Berksfile.lock.orig Berksfile.lock'
|
174
|
+
]
|
175
|
+
else
|
176
|
+
after_berks_vendor.concat [
|
177
|
+
'export LOCKDIFF=$(diff -u0 Berksfile.lock /tmp/Berksfile.lock.orig)',
|
178
|
+
['if [ "$LOCKDIFF" != "" ] ; then ',
|
179
|
+
'cp -a /tmp/Berksfile.lock.orig Berksfile.lock ; ',
|
180
|
+
'echo -e "Bad Berksfile.lock\n$LOCKDIFF" 1>&2 ; exit 1 ; fi'].join
|
181
|
+
]
|
182
|
+
end
|
183
|
+
|
184
|
+
move_cookbooks = [
|
175
185
|
["find /tmp/vendored_cookbooks -type d -exec bash -ec '",
|
176
186
|
"install -o #{Process.uid} -g #{Process.gid} --mode $(stat -c %a {}) -d ",
|
177
|
-
"#{
|
187
|
+
"#{dest_path}/$(echo {} | sed -e \"s/^\\/tmp\\/vendored_cookbooks//\")' \\;"].join,
|
178
188
|
["find /tmp/vendored_cookbooks -type f -exec bash -ec '",
|
179
189
|
"install -o #{Process.uid} -g #{Process.gid} --mode $(stat -c %a {}) {} ",
|
180
|
-
"#{
|
190
|
+
"#{dest_path}/$(echo {} | sed -e \"s/\\/tmp\\/vendored_cookbooks//\")' \\;"].join
|
191
|
+
]
|
192
|
+
|
193
|
+
vendor_commands = [
|
194
|
+
*before_berks_vendor.compact,
|
195
|
+
"/.dapp/deps/chefdk/bin/berks vendor /tmp/vendored_cookbooks",
|
196
|
+
*after_berks_vendor.compact,
|
197
|
+
*move_cookbooks.compact
|
181
198
|
]
|
182
199
|
|
183
200
|
application.shellout!(
|
184
201
|
['docker run --rm',
|
185
202
|
("--volume #{ssh_auth_socket_path}:#{ssh_auth_socket_path}" if ssh_auth_socket_path),
|
186
|
-
"--volume #{
|
203
|
+
"--volume #{dest_path.tap(&:mkpath)}:#{dest_path}",
|
187
204
|
*berksfile.local_cookbooks
|
188
205
|
.values
|
189
206
|
.map { |cookbook| "--volume #{cookbook[:path]}:#{cookbook[:path]}" },
|
190
207
|
"--volumes-from #{volumes_from}",
|
191
208
|
"--workdir #{berksfile_path.parent}",
|
192
209
|
("--env SSH_AUTH_SOCK=#{ssh_auth_socket_path}" if ssh_auth_socket_path),
|
210
|
+
('--env DAPP_CHEF_COOKBOOKS_VENDORING=1' if chef_cookbooks_stage),
|
193
211
|
"dappdeps/berksdeps:0.1.0 bash -ec '#{application.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
|
194
212
|
log_verbose: application.log_verbose?
|
195
213
|
)
|
@@ -197,13 +215,18 @@ module Dapp
|
|
197
215
|
end
|
198
216
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
199
217
|
|
200
|
-
def _cookbooks_vendor_path
|
201
|
-
application.tmp_path(
|
218
|
+
def _cookbooks_vendor_path(chef_cookbooks_stage: false)
|
219
|
+
application.tmp_path(
|
220
|
+
application.config._name,
|
221
|
+
['cookbooks',
|
222
|
+
chef_cookbooks_stage ? 'chef_cookbooks_stage' : nil,
|
223
|
+
cookbooks_checksum].compact.join('.')
|
224
|
+
)
|
202
225
|
end
|
203
226
|
|
204
|
-
def cookbooks_vendor_path(*path)
|
205
|
-
_cookbooks_vendor_path.tap do |cookbooks_path|
|
206
|
-
install_cookbooks unless cookbooks_path.exist?
|
227
|
+
def cookbooks_vendor_path(*path, chef_cookbooks_stage: false)
|
228
|
+
_cookbooks_vendor_path(chef_cookbooks_stage: chef_cookbooks_stage).tap do |cookbooks_path|
|
229
|
+
install_cookbooks(cookbooks_path, chef_cookbooks_stage: chef_cookbooks_stage) unless cookbooks_path.exist?
|
207
230
|
end.join(*path)
|
208
231
|
end
|
209
232
|
|
data/lib/dapp/builder/shell.rb
CHANGED
@@ -9,8 +9,7 @@ module Dapp
|
|
9
9
|
end
|
10
10
|
define_method("#{stage}?") { !stage_empty?(stage) }
|
11
11
|
define_method("#{stage}") do |image|
|
12
|
-
image.add_command(
|
13
|
-
*stage_commands(stage)) unless stage_empty?(stage)
|
12
|
+
image.add_command(*stage_commands(stage)) unless stage_empty?(stage)
|
14
13
|
end
|
15
14
|
end
|
16
15
|
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|