dapp 0.24.6 → 0.24.7

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8630679f0871a4ccaeac1b38cac8eb0f11d1edba
4
- data.tar.gz: 2fd12efa60bf0ba421ff7937951b365749b81ec5
3
+ metadata.gz: 0073271a0411a76dde658c5b3e5b44d5da2a1ede
4
+ data.tar.gz: 3817ba7a0bb6d5bb1fdb9f8e4ada6ecfe01eac64
5
5
  SHA512:
6
- metadata.gz: 6d1680150539d937f9d6f456ef048cabba7fa3756b7514a83368c06db6955df01e930cab51ac3d1e9c191b448c09c3aaa8729f6ac5fb4c451154756702b47f09
7
- data.tar.gz: 0b6340a981b36e91900961f91c6b433fea925f17f0806c2b4c8983442e39c4dc0482ab12d3304868e873ee464a753596891b35474567ac782e461e87e58f8a76
6
+ metadata.gz: a56c7b2ef49a8288ec40d23748e700dcd33cabf2e31af4c57541857ca6a505c337800612486cc4c7907a2e49e06dd90e2970df16b98429dca3fac013b50b0467
7
+ data.tar.gz: 78f8f794c7935074c852edb90bf521e3207e9cf82aeee2df9dcccd98b617182992e9bc108e72f2d55ee0e0445b17b99c3b6e361b8d890669b50a7d4ab2f7e511
data/lib/dapp/dapp.rb CHANGED
@@ -35,6 +35,8 @@ module Dapp
35
35
  Logging::I18n.initialize
36
36
  validate_config_options!
37
37
  Logging::Paint.initialize(option_color)
38
+
39
+ @_call_before_terminate = []
38
40
  end
39
41
 
40
42
  def options
@@ -120,6 +122,7 @@ module Dapp
120
122
  end
121
123
 
122
124
  def terminate
125
+ @_call_before_terminate.each {|on_terminate| on_terminate.call(self)}
123
126
  FileUtils.rmtree(host_docker_tmp_config_dir)
124
127
  end
125
128
 
@@ -12,7 +12,7 @@ module Dapp
12
12
  @base_container ||= begin
13
13
  is_container_exist = proc{shellout("#{host_docker} inspect #{base_container_name}").exitstatus.zero?}
14
14
  if !is_container_exist.call
15
- lock("dappdeps.container.#{base_container_name}", default_timeout: 120) do
15
+ lock("dappdeps.container.#{base_container_name}", default_timeout: 600) do
16
16
  if !is_container_exist.call
17
17
  log_secondary_process(t(code: 'process.base_container_creating', data: {name: base_container_name}), short: true) do
18
18
  shellout!(
@@ -12,7 +12,7 @@ module Dapp
12
12
  @gitartifact_container ||= begin
13
13
  is_container_exist = proc{shellout("#{host_docker} inspect #{gitartifact_container_name}").exitstatus.zero?}
14
14
  if !is_container_exist.call
15
- lock("dappdeps.container.#{gitartifact_container_name}", default_timeout: 120) do
15
+ lock("dappdeps.container.#{gitartifact_container_name}", default_timeout: 600) do
16
16
  if !is_container_exist.call
17
17
  log_secondary_process(t(code: 'process.gitartifact_container_creating', data: {name: gitartifact_container_name}), short: true) do
18
18
  shellout!(
@@ -12,7 +12,7 @@ module Dapp
12
12
  @toolchain_container ||= begin
13
13
  is_container_exist = proc {shellout("#{host_docker} inspect #{toolchain_container_name}").exitstatus.zero?}
14
14
  if !is_container_exist.call
15
- lock("dappdeps.container.#{toolchain_container_name}", default_timeout: 300) do
15
+ lock("dappdeps.container.#{toolchain_container_name}", default_timeout: 600) do
16
16
  if !is_container_exist.call
17
17
  log_secondary_process(t(code: 'process.toolchain_container_creating', data: {name: toolchain_container_name}), short: true) do
18
18
  shellout!(
@@ -10,7 +10,8 @@ module Dapp
10
10
  @_locks[name] ||= ::Dapp::Dimg::Lock::File.new(locks_dir, name)
11
11
  end
12
12
 
13
- def lock(name, *_args, default_timeout: 300, **kwargs, &blk)
13
+ # default_timeout 24 hours
14
+ def lock(name, *_args, default_timeout: 86400, **kwargs, &blk)
14
15
  if dry_run?
15
16
  yield if block_given?
16
17
  else
@@ -64,7 +64,7 @@ module Dapp
64
64
  @chefdk_container ||= begin
65
65
  is_container_exist = proc{dimg.dapp.shellout("#{dimg.dapp.host_docker} inspect #{chefdk_container_name}").exitstatus.zero?}
66
66
  if !is_container_exist.call
67
- dimg.dapp.lock("dappdeps.container.#{chefdk_container_name}", default_timeout: 120) do
67
+ dimg.dapp.lock("dappdeps.container.#{chefdk_container_name}", default_timeout: 600) do
68
68
  if !is_container_exist.call
69
69
  dimg.dapp.log_secondary_process(dimg.dapp.t(code: 'process.chefdk_container_creating', data: {name: chefdk_container_name}), short: true) do
70
70
  dimg.dapp.shellout!(
@@ -66,7 +66,7 @@ module Dapp
66
66
  end
67
67
 
68
68
  def vendor_path
69
- builder.dimg.dapp.lock(_vendor_lock_name, default_timeout: 120) do
69
+ builder.dimg.dapp.lock(_vendor_lock_name, default_timeout: 600) do
70
70
  vendor! unless _vendor_path.join('.created_at').exist?
71
71
  end
72
72
  _vendor_path
@@ -12,25 +12,81 @@ Usage:
12
12
 
13
13
  Options:
14
14
  BANNER
15
+
16
+ # build options
17
+
18
+ introspected_stages = [
19
+ :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
20
+ :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact,
21
+ :g_a_pre_setup_patch, :setup, :g_a_post_setup_patch, :after_setup_artifact, :g_a_latest_patch, :docker_instructions
22
+ ]
23
+ artifact_introspected_stages = [
24
+ :from, :before_install, :before_install_artifact, :g_a_archive, :g_a_pre_install_patch, :install,
25
+ :g_a_post_install_patch, :after_install_artifact, :before_setup, :before_setup_artifact,
26
+ :g_a_pre_setup_patch, :setup, :after_setup_artifact, :g_a_artifact_patch, :build_artifact
27
+ ]
28
+
15
29
  option :tmp_dir_prefix,
16
- long: '--tmp-dir-prefix PREFIX',
17
- description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
30
+ long: '--tmp-dir-prefix PREFIX',
31
+ description: 'Tmp directory prefix (/tmp by default). Used for build process service directories.'
18
32
 
19
33
  option :lock_timeout,
20
- long: '--lock-timeout TIMEOUT',
21
- description: 'Redefine resource locking timeout (in seconds)',
22
- proc: ->(v) { v.to_i }
34
+ long: '--lock-timeout TIMEOUT',
35
+ description: 'Redefine resource locking timeout (in seconds)',
36
+ proc: ->(v) { v.to_i }
23
37
 
24
38
  option :git_artifact_branch,
25
- long: '--git-artifact-branch BRANCH',
26
- description: 'Default branch to archive artifacts from'
39
+ long: '--git-artifact-branch BRANCH',
40
+ description: 'Default branch to archive artifacts from'
41
+
42
+ option :introspect_error,
43
+ long: '--introspect-error',
44
+ boolean: true,
45
+ default: false
46
+
47
+ option :introspect_before_error,
48
+ long: '--introspect-before-error',
49
+ boolean: true,
50
+ default: false
51
+
52
+ option :introspect_stage,
53
+ long: '--introspect-stage STAGE',
54
+ description: "Introspect one of the following stages (#{list_msg_format(introspected_stages)})",
55
+ proc: proc { |val| val.to_sym.tap { |v| in_validate!(v, introspected_stages) } }
56
+
57
+ option :introspect_artifact_stage,
58
+ long: '--introspect-artifact-stage STAGE',
59
+ description: "Introspect one of the following stages (#{list_msg_format(artifact_introspected_stages)})",
60
+ proc: proc { |val| val.to_sym.tap { |v| in_validate!(v, artifact_introspected_stages) } }
27
61
 
28
62
  option :ssh_key,
29
- long: '--ssh-key SSH_KEY',
30
- description: ['Enable only specified ssh keys ',
31
- '(use system ssh-agent by default)'].join,
32
- default: nil,
33
- proc: ->(v) { composite_options(:ssh_key) << v }
63
+ long: '--ssh-key SSH_KEY',
64
+ description: ['Enable only specified ssh keys ',
65
+ '(use system ssh-agent by default)'].join,
66
+ default: nil,
67
+ proc: ->(v) { composite_options(:ssh_key) << v }
68
+
69
+ option :build_context_directory,
70
+ long: '--build-context-directory DIR_PATH',
71
+ default: nil
72
+
73
+ option :use_system_tar,
74
+ long: '--use-system-tar',
75
+ boolean: true,
76
+ default: false
77
+
78
+ option :force_save_cache,
79
+ long: '--force-save-cache',
80
+ boolean: true,
81
+ default: false
82
+
83
+ # push options
84
+
85
+ extend ::Dapp::CLI::Command::Options::Tag
86
+
87
+ option :with_stages,
88
+ long: '--with-stages',
89
+ boolean: true
34
90
 
35
91
  option :registry_username,
36
92
  long: '--registry-username USERNAME'
@@ -6,8 +6,6 @@ module Dapp
6
6
  def bp
7
7
  bp_step(:build)
8
8
  bp_step(:push)
9
- bp_step(:stages_cleanup_by_repo)
10
- bp_step(:cleanup)
11
9
  end
12
10
 
13
11
  def bp_step(step, *args)
@@ -9,6 +9,10 @@ module Dapp
9
9
  def artifact_dimg(config:, **kwargs)
10
10
  (@artifacts_dimgs ||= {})[config._name] ||= ::Dapp::Dimg::Artifact.new(config: config, dapp: self, **kwargs)
11
11
  end
12
+
13
+ def _terminate_dimg_on_terminate(dimg)
14
+ @_call_before_terminate << proc{dimg.terminate}
15
+ end
12
16
  end # Dimg
13
17
  end # Dapp
14
18
  end # Dimg
@@ -20,9 +20,15 @@ module Dapp
20
20
  @ignore_git_fetch = ignore_git_fetch
21
21
  @should_be_built = should_be_built
22
22
 
23
+ @dapp._terminate_dimg_on_terminate(self)
24
+
23
25
  raise Error::Dimg, code: :dimg_not_built if should_be_built?
24
26
  end
25
27
 
28
+ def terminate
29
+ cleanup_tmp
30
+ end
31
+
26
32
  def build!
27
33
  with_introspection do
28
34
  dapp.lock("#{dapp.name}.images", readonly: true) do
@@ -36,8 +42,6 @@ module Dapp
36
42
  end
37
43
  end
38
44
  end
39
- ensure
40
- cleanup_tmp
41
45
  end
42
46
 
43
47
  def after_stages_build!
@@ -196,8 +200,6 @@ module Dapp
196
200
  cmd << " rm -rf #{tmp_path}"
197
201
  end
198
202
  dapp.shellout! cmd
199
-
200
- artifacts.each(&:cleanup_tmp)
201
203
  end
202
204
 
203
205
  def stage_should_be_introspected?(name)
@@ -49,7 +49,7 @@ module Dapp
49
49
  end
50
50
 
51
51
  def _with_lock(&blk)
52
- dapp.lock("remote_git_artifact.#{name}", default_timeout: 120, &blk)
52
+ dapp.lock("remote_git_artifact.#{name}", default_timeout: 600, &blk)
53
53
  end
54
54
 
55
55
  def _rugged_credentials
data/lib/dapp/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = "0.24.6"
2
+ VERSION = "0.24.7"
3
3
  BUILD_CACHE_VERSION = 26
4
4
  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.24.6
4
+ version: 0.24.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-25 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout