dapp 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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