dapp 0.6.12 → 0.6.13

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