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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzRhNjZjMDBhZDgzNTlmYjA4M2U2ZTczM2NkODdiOWMwNTBlM2U1Yw==
4
+ Y2FmYzM3MDM3ZjJiYzA2NTBkZDlkZjQ3ZjcwODBiZDc3ZDQ3YmNhZQ==
5
5
  data.tar.gz: !binary |-
6
- MzU5NzE3MDdjZGYzOGUxMDYxZWU2YjlhNDUzMDNiYWEyYWY1MDIyZQ==
6
+ NzUwNTk0YWM5Nzc2NjhkOTk0MzUwYjhlZTA5YjI4ZDhhY2EyODQ3OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmMyMzgwNDYxNmJiNTkxYzFmNTAzODU5ZjRhNWQ5YjJmMzU5YWMwN2FjMjAz
10
- N2Q5NWQ3MjcxMTZkMDlmMTI5ODVkODM3YWQ1YjY2OGNkMGJiYmZjMjllODM5
11
- M2Q3NjVjMWJhOTEzYTc1ZWNhM2UzZjhkZmNjNzc3Njk0OGU1Zjg=
9
+ MzljMjQ3ZTIwMWNmNDI3YTdkOWE1MzNkN2I0OTU1YjlkMDQ0OWMxMTkxOGJl
10
+ Y2QxNDJhZDM1NTc1OTMxMGVmNmM3OTE1NmJlODIwYWMzNWFmMzQxOTBiYTI0
11
+ NWY1NjVjYjNkZWQwZmJiMTA1OTk1MDhjMjFkYTNmZTUxMmU5Yzc=
12
12
  data.tar.gz: !binary |-
13
- NWI1YTJmMTljOWM1MzhhN2ZhZGVmYmU0NmRiOTcwMzY5MTFkMWZkN2IxNTU5
14
- MTcyNGQ3MzdlZTFlNWZiYmIyNDliZmNkZjRmZWY4MDI1MWFjZDVkZDkzODA0
15
- MjYwMGY0NjkzMDFmZDc1YmI3NWVhMzNmYmRhNzI4MGQ2OGJmNTM=
13
+ NTcxODBkNTA5YTlkYTZiYTgzMDk4OTE5YTcxMmU2Y2FmZGMwZWMxNjdhOWNk
14
+ MTMwZGI0N2Q5ODRkOGFlMGY2N2Q1MThjZGI0NDQxZmNmMTdhN2EzZjk1YzY1
15
+ NmU3ODhiYTU1ZGM0NjFkMjQ1NDcyNmMyY2Y4YjkyNDkyMDkzNjg=
data/lib/dapp.rb CHANGED
@@ -33,6 +33,7 @@ require 'dapp/cli/smartpush'
33
33
  require 'dapp/cli/list'
34
34
  require 'dapp/cli/metadata'
35
35
  require 'dapp/cli/metadata/flush'
36
+ require 'dapp/cli/stages'
36
37
  require 'dapp/cli/stages/flush'
37
38
  require 'dapp/cli/stages/cleanup'
38
39
  require 'dapp/cli/run'
@@ -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/sh']
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, Array(application.shellout_pack(commands)))
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)
@@ -39,6 +39,13 @@ module Dapp
39
39
  def setup_checksum
40
40
  raise
41
41
  end
42
+
43
+ def chef_cookbooks(_image)
44
+ end
45
+
46
+ def chef_cookbooks_checksum
47
+ []
48
+ end
42
49
  end # Base
43
50
  end # Builder
44
51
  end # Dapp
@@ -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
- *application.config._chef._modules,
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
- *application.config._chef._modules
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
- mdapp_enabled = is_mdapp && application.config._chef._modules.include?(cookbook_name)
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(application.config._chef._modules.map do |mod|
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
@@ -18,7 +18,7 @@ module Dapp
18
18
  @cookbook_metadata.version = version
19
19
  end
20
20
 
21
- def depends(dependency)
21
+ def depends(dependency, *_a, &_blk)
22
22
  @cookbook_metadata.depends << dependency
23
23
  end
24
24
 
@@ -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 |m|
6
- define_method(:"#{m}_checksum") do
7
- [application.config._shell.public_send("_#{m}"),
8
- application.config._shell.public_send("_#{m}_cache_version")].flatten
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(:"#{m}") do |image|
11
- image.add_commands(*application.config._shell.public_send("_#{m}"))
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
@@ -49,11 +49,17 @@ module Dapp
49
49
  end
50
50
 
51
51
  def stages_flush
52
- shellout(%{docker rmi $(docker images --format="{{.Repository}}:{{.Tag}}" #{build_configs.first._basename}-dappstage)})
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
- shellout(%{docker rmi $(docker images -f "dangling=true" -f "label=dapp=#{build_configs.first._basename}" -q)})
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
@@ -34,7 +34,7 @@ module Dapp
34
34
  end
35
35
 
36
36
  def shellout_pack(command)
37
- "-ec 'eval $(echo #{Base64.strict_encode64(command)} | base64 --decode)'"
37
+ "eval $(echo #{Base64.strict_encode64(command)} | base64 --decode)"
38
38
  end
39
39
 
40
40
  def self.included(base)
@@ -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/sh --name=#{container_name} #{from.built_id} #{prepared_bash_command}",
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
@@ -1,5 +1,5 @@
1
1
  # Version
2
2
  module Dapp
3
- VERSION = '0.4.1'.freeze
3
+ VERSION = '0.4.2'.freeze
4
4
  BUILD_CACHE_VERSION = 1
5
5
  end
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.1
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-05 00:00:00.000000000 Z
11
+ date: 2016-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout