dapp 0.4.1 → 0.4.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 +8 -8
- data/lib/dapp.rb +1 -0
- data/lib/dapp/build/stage/mod/artifact.rb +2 -2
- data/lib/dapp/builder/base.rb +7 -0
- data/lib/dapp/builder/chef.rb +15 -9
- data/lib/dapp/builder/chef/cookbook_metadata.rb +1 -1
- data/lib/dapp/builder/shell.rb +7 -13
- data/lib/dapp/controller.rb +8 -2
- data/lib/dapp/helper/shellout.rb +1 -1
- data/lib/dapp/image/stage.rb +1 -1
- data/lib/dapp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2FmYzM3MDM3ZjJiYzA2NTBkZDlkZjQ3ZjcwODBiZDc3ZDQ3YmNhZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzUwNTk0YWM5Nzc2NjhkOTk0MzUwYjhlZTA5YjI4ZDhhY2EyODQ3OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzljMjQ3ZTIwMWNmNDI3YTdkOWE1MzNkN2I0OTU1YjlkMDQ0OWMxMTkxOGJl
|
10
|
+
Y2QxNDJhZDM1NTc1OTMxMGVmNmM3OTE1NmJlODIwYWMzNWFmMzQxOTBiYTI0
|
11
|
+
NWY1NjVjYjNkZWQwZmJiMTA1OTk1MDhjMjFkYTNmZTUxMmU5Yzc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTcxODBkNTA5YTlkYTZiYTgzMDk4OTE5YTcxMmU2Y2FmZGMwZWMxNjdhOWNk
|
14
|
+
MTMwZGI0N2Q5ODRkOGFlMGY2N2Q1MThjZGI0NDQxZmNmMTdhN2EzZjk1YzY1
|
15
|
+
NmU3ODhiYTU1ZGM0NjFkMjQ1NDcyNmMyY2Y4YjkyNDkyMDkzNjg=
|
data/lib/dapp.rb
CHANGED
@@ -56,10 +56,10 @@ module Dapp
|
|
56
56
|
|
57
57
|
docker_options = ['--rm',
|
58
58
|
"--volume #{application.tmp_path('artifact', artifact_name)}:#{app.container_tmp_path(artifact_name)}",
|
59
|
-
'--entrypoint /bin/
|
59
|
+
'--entrypoint /bin/bash']
|
60
60
|
commands = safe_cp(where_to_add, app.container_tmp_path(artifact_name), Process.uid, Process.gid)
|
61
61
|
application.log_secondary_process(application.t(code: 'process.artifact_copy', data: { name: artifact_name }), short: true) do
|
62
|
-
app.run(docker_options,
|
62
|
+
app.run(docker_options, [%{-ec '#{application.shellout_pack(commands)}'}])
|
63
63
|
end
|
64
64
|
|
65
65
|
commands = safe_cp(application.container_tmp_path('artifact', artifact_name), where_to_add, owner, group, cwd, paths)
|
data/lib/dapp/builder/base.rb
CHANGED
data/lib/dapp/builder/chef.rb
CHANGED
@@ -17,7 +17,8 @@ module Dapp
|
|
17
17
|
define_method(:"#{stage}") do |image|
|
18
18
|
unless stage_empty?(stage)
|
19
19
|
image.add_volumes_from(chefdk_container)
|
20
|
-
image.add_commands 'export PATH=/.dapp/deps/chefdk/bin:$PATH'
|
20
|
+
image.add_commands 'export PATH=/.dapp/deps/chefdk/bin:$PATH',
|
21
|
+
"export DAPP_BUILD_STAGE=#{stage}"
|
21
22
|
|
22
23
|
image.add_volume "#{stage_tmp_path(stage)}:#{container_stage_tmp_path(stage)}"
|
23
24
|
image.add_commands ['chef-solo',
|
@@ -42,6 +43,12 @@ module Dapp
|
|
42
43
|
|
43
44
|
private
|
44
45
|
|
46
|
+
def enabled_modules
|
47
|
+
application.config._chef._modules.map do |mod|
|
48
|
+
mod.start_with?('mdapp-') ? mod.split('mdapp-')[1] : mod
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
45
52
|
def project_name
|
46
53
|
cookbook_metadata.name
|
47
54
|
end
|
@@ -99,7 +106,7 @@ module Dapp
|
|
99
106
|
else
|
100
107
|
application.hashsum [
|
101
108
|
_paths_checksum(stage_cookbooks_paths_for_checksum(stage)),
|
102
|
-
*
|
109
|
+
*enabled_modules,
|
103
110
|
stage == :infra_install ? chefdk_image : nil
|
104
111
|
].compact
|
105
112
|
end
|
@@ -113,7 +120,7 @@ module Dapp
|
|
113
120
|
@cookbooks_checksum ||= application.hashsum [
|
114
121
|
berksfile_lock_checksum,
|
115
122
|
_paths_checksum(local_cookbook_paths_for_checksum),
|
116
|
-
*
|
123
|
+
*enabled_modules
|
117
124
|
]
|
118
125
|
end
|
119
126
|
|
@@ -178,7 +185,7 @@ module Dapp
|
|
178
185
|
"--volumes-from #{volumes_from}",
|
179
186
|
"--workdir #{berksfile_path.parent}",
|
180
187
|
("--env SSH_AUTH_SOCK=#{ssh_auth_socket_path}" if ssh_auth_socket_path),
|
181
|
-
"dappdeps/berksdeps:0.1.0 bash #{application.shellout_pack(vendor_commands.join(' && '))}"].compact.join(' '),
|
188
|
+
"dappdeps/berksdeps:0.1.0 bash -ec '#{application.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
|
182
189
|
log_verbose: application.log_verbose?
|
183
190
|
)
|
184
191
|
|
@@ -215,7 +222,8 @@ module Dapp
|
|
215
222
|
cookbook_name = File.basename cookbook_path
|
216
223
|
is_project = (cookbook_name == project_name)
|
217
224
|
is_mdapp = cookbook_name.start_with? 'mdapp-'
|
218
|
-
|
225
|
+
mdapp_name = (is_mdapp ? cookbook_name.split('mdapp-')[1] : nil)
|
226
|
+
mdapp_enabled = is_mdapp && enabled_modules.include?(mdapp_name)
|
219
227
|
|
220
228
|
paths = if is_project
|
221
229
|
recipe_paths = application.config._chef._recipes
|
@@ -227,8 +235,6 @@ module Dapp
|
|
227
235
|
recipe_path = "recipes/#{stage}.rb"
|
228
236
|
if cookbook_path.join(recipe_path).exist?
|
229
237
|
[[recipe_path, recipe_path]] + common_paths[cookbook_path]
|
230
|
-
elsif cookbook_metadata.depends.include? cookbook_name
|
231
|
-
[['metadata.json', 'metadata.json']]
|
232
238
|
end
|
233
239
|
else
|
234
240
|
[['.', '.']]
|
@@ -267,8 +273,8 @@ module Dapp
|
|
267
273
|
to_runlist_entrypoint[project_name, recipe]
|
268
274
|
end.flatten.compact)
|
269
275
|
|
270
|
-
res.concat(
|
271
|
-
to_runlist_entrypoint[mod, stage]
|
276
|
+
res.concat(enabled_modules.map do |mod|
|
277
|
+
to_runlist_entrypoint["mdapp-#{mod}", stage]
|
272
278
|
end.flatten.compact)
|
273
279
|
end
|
274
280
|
end
|
data/lib/dapp/builder/shell.rb
CHANGED
@@ -2,22 +2,16 @@ module Dapp
|
|
2
2
|
module Builder
|
3
3
|
# Shell
|
4
4
|
class Shell < Base
|
5
|
-
[:infra_install, :infra_setup, :install, :setup].each do |
|
6
|
-
define_method(:"#{
|
7
|
-
[application.config._shell.public_send("_#{
|
8
|
-
application.config._shell.public_send("_#{
|
5
|
+
[:infra_install, :infra_setup, :install, :setup].each do |stage|
|
6
|
+
define_method(:"#{stage}_checksum") do
|
7
|
+
[application.config._shell.public_send("_#{stage}"),
|
8
|
+
application.config._shell.public_send("_#{stage}_cache_version")].flatten
|
9
9
|
end
|
10
|
-
define_method(:"#{
|
11
|
-
|
10
|
+
define_method(:"#{stage}") do |image|
|
11
|
+
commands = application.config._shell.public_send("_#{stage}")
|
12
|
+
image.add_commands("export DAPP_BUILD_STAGE=#{stage}", *commands) if commands
|
12
13
|
end
|
13
14
|
end
|
14
|
-
|
15
|
-
def chef_cookbooks_checksum
|
16
|
-
[]
|
17
|
-
end
|
18
|
-
|
19
|
-
def chef_cookbooks(_image)
|
20
|
-
end
|
21
15
|
end
|
22
16
|
end
|
23
17
|
end
|
data/lib/dapp/controller.rb
CHANGED
@@ -49,11 +49,17 @@ module Dapp
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def stages_flush
|
52
|
-
|
52
|
+
build_configs.map(&:_basename).uniq.each do |basename|
|
53
|
+
log(basename)
|
54
|
+
shellout(%{docker rmi $(docker images --format="{{.Repository}}:{{.Tag}}" #{basename}-dappstage)})
|
55
|
+
end
|
53
56
|
end
|
54
57
|
|
55
58
|
def stages_cleanup
|
56
|
-
|
59
|
+
build_configs.map(&:_basename).uniq.each do |basename|
|
60
|
+
log(basename)
|
61
|
+
shellout(%{docker rmi $(docker images -f "dangling=true" -f "label=dapp=#{basename}" -q)})
|
62
|
+
end
|
57
63
|
end
|
58
64
|
|
59
65
|
def metadata_flush
|
data/lib/dapp/helper/shellout.rb
CHANGED
data/lib/dapp/image/stage.rb
CHANGED
@@ -47,7 +47,7 @@ module Dapp
|
|
47
47
|
|
48
48
|
def run!(log_verbose: false, log_time: false, introspect_error: false, introspect_before_error: false)
|
49
49
|
raise Error::Build, code: :built_id_not_defined if from.built_id.nil?
|
50
|
-
shellout!("docker run #{prepared_options} --entrypoint /bin/
|
50
|
+
shellout!("docker run #{prepared_options} --entrypoint /bin/bash --name=#{container_name} #{from.built_id} -ec '#{prepared_bash_command}'",
|
51
51
|
log_verbose: log_verbose, log_time: log_time)
|
52
52
|
rescue Error::Shellout => e
|
53
53
|
raise unless introspect_error || introspect_before_error
|
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.4.
|
4
|
+
version: 0.4.2
|
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-08-
|
11
|
+
date: 2016-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|