dapp 0.6.12 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3dd77689ebc3d0f069edff07100a1ec9d135977
4
- data.tar.gz: 09d0a2dd7f5f64acb00a2b1c58d3e48da0c9ce59
3
+ metadata.gz: ac903d46c75ee71f1711f2a080a716189ed2f98e
4
+ data.tar.gz: 70bb61f90a9766f85fdf80cf20fad99d35cbdee2
5
5
  SHA512:
6
- metadata.gz: ae25b2ffc259b33c7ce576e8ad88e3f1312fa3c5031b238c60088afe80f90db7d294c33baeb9fbed2025e86c318c3ab9e9065bc3e579993c62940e91f4bee319
7
- data.tar.gz: d148dca01afaac2a84468d5dbe01abb6d9d14092ecd6d86701d726eca46cb91bc4beb29d29d6737bdafed930b2190241f291183675a4d0bf97fc4e7d8d4229f8
6
+ metadata.gz: 615cf91696adb6ff687070cce23a2db2151df9d7d3c74934845444f879f246c5d8bc53e59759425be0b1f468cbd2e59593af8288cde1c11c50de1f228387af57
7
+ data.tar.gz: a8693e0f43ee95b3260903414515b884a6450ad9904eb7bf7999db9b5463feced29562fc7ade3867c60dc1e08d7ffa9a0ee6b9e9aae9756940fa103673306180
@@ -24,7 +24,7 @@ en:
24
24
  dappfile_not_found: "Dappfile not found!"
25
25
  cannot_run_ssh_agent: "Cannot run ssh-agent"
26
26
  ssh_key_not_found: "Ssh key '%{path}' not exist!"
27
- mrproper_required_option: "Expected command option '--all' or '--improper-cache-version-stages'!"
27
+ mrproper_required_option: "Expected command option '--improper-dev-mode-cache', '--improper-cache-version-stages' or '--all'!"
28
28
  config:
29
29
  builder_type_conflict: 'Conflict between builder types!'
30
30
  builder_type_unsupported: "Defined unsupported builder type `%{type}`!"
@@ -30,7 +30,7 @@ module Dapp
30
30
  begin
31
31
  last_stage.build!
32
32
  ensure
33
- last_stage.save_in_cache! if last_stage.image.built? || project.dev_mode?
33
+ last_stage.save_in_cache! if last_stage.image.built? || dev_mode?
34
34
  end
35
35
  end
36
36
  end
@@ -126,6 +126,14 @@ module Dapp
126
126
  config._docker._from.nil?
127
127
  end
128
128
 
129
+ def dev_mode?
130
+ config._dev_mode || project.dev_mode?
131
+ end
132
+
133
+ def build_cache_version
134
+ [Dapp::BUILD_CACHE_VERSION, dev_mode? ? 1 : 0]
135
+ end
136
+
129
137
  protected
130
138
 
131
139
  def should_be_built?
@@ -80,6 +80,7 @@ module Dapp
80
80
  image_add_tmp_volumes(:build)
81
81
  image.add_service_change_label dapp: application.stage_dapp_label
82
82
  image.add_service_change_label 'dapp-cache-version'.to_sym => Dapp::BUILD_CACHE_VERSION
83
+ image.add_service_change_label 'dapp-dev-mode'.to_sym => true if application.dev_mode?
83
84
 
84
85
  if application.project.ssh_auth_sock
85
86
  image.add_volume "#{application.project.ssh_auth_sock}:/tmp/dapp-ssh-agent"
@@ -91,7 +92,7 @@ module Dapp
91
92
  (application.config.public_send("_#{type}_dir")._store +
92
93
  from_image.labels.select { |l, _| l == "dapp-#{type}-dir" }.map { |_, value| value.split(';') }.flatten).each do |path|
93
94
  absolute_path = File.expand_path(File.join('/', path))
94
- tmp_path = application.send("#{type}_path", absolute_path[1..-1]).tap(&:mkpath)
95
+ tmp_path = application.send("#{type}_path", 'mount', absolute_path[1..-1]).tap(&:mkpath)
95
96
  image.add_volume "#{tmp_path}:#{absolute_path}"
96
97
  end
97
98
  end
@@ -112,7 +113,13 @@ module Dapp
112
113
  if empty?
113
114
  prev_stage.signature
114
115
  else
115
- hashsum [prev_stage.signature, builder_checksum, *dependencies.flatten]
116
+ args = []
117
+ args << prev_stage.signature unless prev_stage.nil?
118
+ args << application.build_cache_version
119
+ args << builder_checksum
120
+ args.concat(dependencies.flatten)
121
+
122
+ hashsum args
116
123
  end
117
124
  end
118
125
 
@@ -3,12 +3,8 @@ module Dapp
3
3
  module Stage
4
4
  # From
5
5
  class From < Base
6
- def signature
7
- hashsum [*dependencies.flatten]
8
- end
9
-
10
6
  def dependencies
11
- [from_image_name, application.config._docker._from_cache_version, Dapp::BUILD_CACHE_VERSION]
7
+ [from_image_name, application.config._docker._from_cache_version]
12
8
  end
13
9
 
14
10
  protected
@@ -156,7 +156,7 @@ module Dapp
156
156
  application.hashsum [
157
157
  application.paths_content_hashsum(paths),
158
158
  *paths.map { |p| p.relative_path_from(berksfile.home_path).to_s }.sort,
159
- (berksfile_lock_checksum unless application.project.dev_mode?),
159
+ (berksfile_lock_checksum unless application.dev_mode?),
160
160
  *enabled_recipes,
161
161
  *enabled_modules
162
162
  ].compact
@@ -197,7 +197,7 @@ module Dapp
197
197
 
198
198
  application.project.log_secondary_process(application.project.t(code: process_code)) do
199
199
  before_vendor_commands = [].tap do |commands|
200
- unless application.project.dev_mode? || chef_cookbooks_stage
200
+ unless application.dev_mode? || chef_cookbooks_stage
201
201
  commands.push(
202
202
  ['if [ ! -f Berksfile.lock ] ; then ',
203
203
  "echo \"Berksfile.lock not found\" 1>&2 ; ",
@@ -208,7 +208,7 @@ module Dapp
208
208
  end
209
209
 
210
210
  after_vendor_commands = [].tap do |commands|
211
- if application.project.dev_mode?
211
+ if application.dev_mode?
212
212
  commands.push(
213
213
  ["#{application.project.install_path} -o #{Process.uid} -g #{Process.gid} ",
214
214
  "--mode $(#{application.project.stat_path} -c %a Berksfile.lock) ",
@@ -287,7 +287,7 @@ module Dapp
287
287
  application.project.lock(lock_name, default_timeout: 120) do
288
288
  @install_cookbooks ||= {}
289
289
  @install_cookbooks[chef_cookbooks_stage] ||= begin
290
- install_cookbooks(_cookbooks_path, chef_cookbooks_stage: chef_cookbooks_stage) unless _cookbooks_path.join('.created_at').exist? && !application.project.dev_mode?
290
+ install_cookbooks(_cookbooks_path, chef_cookbooks_stage: chef_cookbooks_stage) unless _cookbooks_path.join('.created_at').exist? && !application.dev_mode?
291
291
  true
292
292
  end
293
293
  end
@@ -17,6 +17,10 @@ BANNER
17
17
  option :proper_cache_version,
18
18
  long: '--improper-cache-version-stages',
19
19
  boolean: true
20
+
21
+ option :proper_dev_mode_cache,
22
+ long: '--improper-dev-mode-cache',
23
+ boolean: true
20
24
  end
21
25
  end
22
26
  end
@@ -81,6 +81,10 @@ module Dapp
81
81
  @_build_dir
82
82
  end
83
83
 
84
+ def dev_mode
85
+ @_dev_mode = true
86
+ end
87
+
84
88
  def _name
85
89
  (@_name || @_basename).tap do |name|
86
90
  reg = '^[[[:alnum:]]_.-]*$'
@@ -88,6 +92,10 @@ module Dapp
88
92
  end
89
93
  end
90
94
 
95
+ def _dev_mode
96
+ !!@_dev_mode
97
+ end
98
+
91
99
  def _apps
92
100
  @_apps.empty? ? [self] : @_apps.flatten
93
101
  end
@@ -8,12 +8,13 @@ module Dapp
8
8
  def mrproper
9
9
  log_step_with_indent(:mrproper) do
10
10
  if proper_all?
11
- log_step_with_indent(:containers) { dapp_containers_flush }
12
- log_step_with_indent(:images) { dapp_images_flush }
11
+ flush_by_label('dapp')
12
+ elsif proper_dev_mode_cache?
13
+ flush_by_label('dapp-dev-mode')
13
14
  elsif proper_cache_version?
14
15
  log_proper_cache do
15
16
  proper_cache_images = proper_cache_all_images
16
- remove_images(dapp_images.lines.select { |id| !proper_cache_images.lines.include?(id) }.map(&:strip))
17
+ remove_images(dapp_images_by_label('dapp').lines.select { |id| !proper_cache_images.lines.include?(id) }.map(&:strip))
17
18
  end
18
19
  else
19
20
  raise Error::Project, code: :mrproper_required_option
@@ -23,25 +24,34 @@ module Dapp
23
24
 
24
25
  protected
25
26
 
27
+ def flush_by_label(label)
28
+ log_step_with_indent(:containers) { dapp_containers_flush_by_label(label) }
29
+ log_step_with_indent(:images) { dapp_images_flush_be_label(label) }
30
+ end
31
+
26
32
  def proper_all?
27
33
  !!cli_options[:proper_all]
28
34
  end
29
35
 
30
- def dapp_containers_flush
31
- remove_containers_by_query('docker ps -a -f "label=dapp" -q', force: true)
36
+ def proper_dev_mode_cache?
37
+ !!cli_options[:proper_dev_mode_cache]
38
+ end
39
+
40
+ def dapp_containers_flush_by_label(label)
41
+ remove_containers_by_query(%(docker ps -a -f "label=#{label}" -q), force: true)
32
42
  end
33
43
 
34
- def dapp_dangling_images_flush
35
- remove_images_by_query('docker images -f "dangling=true" -f "label=dapp" -q', force: true)
44
+ def dapp_dangling_images_flush_by_label(label)
45
+ remove_images_by_query(%(docker images -f "dangling=true" -f "label=#{label}" -q), force: true)
36
46
  end
37
47
 
38
- def dapp_images_flush
39
- dapp_dangling_images_flush
40
- remove_images(dapp_images.lines.map(&:strip), force: true)
48
+ def dapp_images_flush_be_label(label)
49
+ dapp_dangling_images_flush_by_label(label)
50
+ remove_images(dapp_images_by_label(label).lines.map(&:strip), force: true)
41
51
  end
42
52
 
43
- def dapp_images
44
- @dapp_images ||= shellout!('docker images -f "dangling=false" --format="{{.Repository}}:{{.Tag}}" -f "label=dapp"').stdout.strip
53
+ def dapp_images_by_label(label)
54
+ @dapp_images ||= shellout!(%(docker images -f "dangling=false" --format="{{.Repository}}:{{.Tag}}" -f "label=#{label}")).stdout.strip
45
55
  end
46
56
 
47
57
  def proper_cache_all_images
@@ -1,5 +1,5 @@
1
1
  # Version
2
2
  module Dapp
3
- VERSION = '0.6.12'.freeze
4
- BUILD_CACHE_VERSION = 4
3
+ VERSION = '0.6.13'.freeze
4
+ BUILD_CACHE_VERSION = 5
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.6.12
4
+ version: 0.6.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-11-09 00:00:00.000000000 Z
11
+ date: 2016-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout