dapp 0.7.1 → 0.7.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 +4 -4
- data/config/en/net_status.yml +1 -1
- data/lib/dapp/build/stage/base.rb +8 -1
- data/lib/dapp/build/stage/from.rb +1 -5
- data/lib/dapp/cli/mrproper.rb +4 -0
- data/lib/dapp/config/dimg/instance_methods.rb +10 -1
- data/lib/dapp/config/dimg_group_base.rb +6 -1
- data/lib/dapp/dimg.rb +9 -1
- data/lib/dapp/project/command/mrproper.rb +22 -12
- data/lib/dapp/project/dappfile.rb +10 -1
- data/lib/dapp/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d611af62545ae4ad1322d6534e2ecb72f8e9ff5
|
4
|
+
data.tar.gz: 2df141836542876fb905510294f9ccdc1349f5c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 268e5c5c069fb04af95505e33c835cc7c305a55756944444ee5964b34407e1a5b05b8c4bff0e3d7f3f0bca8d26e70ddba99e995e659935a740074d38adcd76d6
|
7
|
+
data.tar.gz: 406cadcaa4493ed0b6654651281ee0a31b71a9281bfb061239fc8731805cbf0e8ada7a99008e4026b827dc9a3e3523b307c84cf8197930ca2a3b929f75546a50
|
data/config/en/net_status.yml
CHANGED
@@ -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 '--
|
27
|
+
mrproper_required_option: "Expected command option '--improper-dev-mode-cache', '--improper-cache-version-stages' or '--all'!"
|
28
28
|
config:
|
29
29
|
dimg_name_required: 'Dimg name required!'
|
30
30
|
dimg_name_incorrect: "Dimg has incorrect name '%{name}': doesn't match regex '%{reg}'!"
|
@@ -79,6 +79,7 @@ module Dapp
|
|
79
79
|
image_add_volumes
|
80
80
|
image.add_service_change_label dapp: dimg.stage_dapp_label
|
81
81
|
image.add_service_change_label 'dapp-cache-version'.to_sym => Dapp::BUILD_CACHE_VERSION
|
82
|
+
image.add_service_change_label 'dapp-dev-mode'.to_sym => true if dimg.dev_mode?
|
82
83
|
|
83
84
|
if dimg.project.ssh_auth_sock
|
84
85
|
image.add_volume "#{dimg.project.ssh_auth_sock}:/tmp/dapp-ssh-agent"
|
@@ -124,7 +125,13 @@ module Dapp
|
|
124
125
|
if empty?
|
125
126
|
prev_stage.signature
|
126
127
|
else
|
127
|
-
|
128
|
+
args = []
|
129
|
+
args << prev_stage.signature unless prev_stage.nil?
|
130
|
+
args << dimg.build_cache_version
|
131
|
+
args << builder_checksum
|
132
|
+
args.concat(dependencies.flatten)
|
133
|
+
|
134
|
+
hashsum args
|
128
135
|
end
|
129
136
|
end
|
130
137
|
|
@@ -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, dimg.config._docker._from_cache_version
|
7
|
+
[from_image_name, dimg.config._docker._from_cache_version]
|
12
8
|
end
|
13
9
|
|
14
10
|
protected
|
data/lib/dapp/cli/mrproper.rb
CHANGED
@@ -7,6 +7,10 @@ module Dapp
|
|
7
7
|
attr_reader :_chef, :_shell, :_docker, :_git_artifact, :_mount, :_artifact
|
8
8
|
attr_reader :_install_dependencies, :_setup_dependencies
|
9
9
|
|
10
|
+
def dev_mode
|
11
|
+
@_dev_mode = true
|
12
|
+
end
|
13
|
+
|
10
14
|
def install_depends_on(*args)
|
11
15
|
@_install_dependencies.concat(args)
|
12
16
|
end
|
@@ -46,6 +50,10 @@ module Dapp
|
|
46
50
|
_mount << Directive::Mount.new(to, &blk)
|
47
51
|
end
|
48
52
|
|
53
|
+
def _dev_mode
|
54
|
+
!!@_dev_mode
|
55
|
+
end
|
56
|
+
|
49
57
|
def _builder
|
50
58
|
@_builder || :none
|
51
59
|
end
|
@@ -147,6 +155,7 @@ module Dapp
|
|
147
155
|
|
148
156
|
def directive_eval(directive, &blk)
|
149
157
|
directive.instance_eval(&blk) if block_given?
|
158
|
+
directive
|
150
159
|
end
|
151
160
|
|
152
161
|
def pass_to_default(dimg)
|
@@ -171,7 +180,7 @@ module Dapp
|
|
171
180
|
end
|
172
181
|
|
173
182
|
def passed_directives
|
174
|
-
[:@_chef, :@_shell, :@_docker, :@_git_artifact, :@_mount, :@_artifact, :@_builder]
|
183
|
+
[:@_chef, :@_shell, :@_docker, :@_git_artifact, :@_mount, :@_artifact, :@_builder, :@_dev_mode]
|
175
184
|
end
|
176
185
|
end
|
177
186
|
end
|
@@ -11,6 +11,10 @@ module Dapp
|
|
11
11
|
super(project: project)
|
12
12
|
end
|
13
13
|
|
14
|
+
def dev_mode
|
15
|
+
@_dev_mode = true
|
16
|
+
end
|
17
|
+
|
14
18
|
def dimg(name = nil, &blk)
|
15
19
|
Config::Dimg.new(name, project: project).tap do |dimg|
|
16
20
|
before_dimg_eval(dimg)
|
@@ -29,7 +33,8 @@ module Dapp
|
|
29
33
|
|
30
34
|
protected
|
31
35
|
|
32
|
-
def before_dimg_eval(
|
36
|
+
def before_dimg_eval(dimg)
|
37
|
+
dimg.instance_variable_set(:@_dev_mode, @_dev_mode)
|
33
38
|
end
|
34
39
|
end
|
35
40
|
end
|
data/lib/dapp/dimg.rb
CHANGED
@@ -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? ||
|
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?
|
@@ -8,12 +8,13 @@ module Dapp
|
|
8
8
|
def mrproper
|
9
9
|
log_step_with_indent(:mrproper) do
|
10
10
|
if proper_all?
|
11
|
-
|
12
|
-
|
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(
|
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
|
31
|
-
|
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
|
35
|
-
remove_images_by_query(
|
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
|
39
|
-
|
40
|
-
remove_images(
|
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
|
44
|
-
@dapp_images ||= shellout!(
|
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
|
@@ -42,7 +42,16 @@ module Dapp
|
|
42
42
|
conf.instance_eval File.read(dappfile_path), dappfile_path
|
43
43
|
rescue SyntaxError, StandardError => e
|
44
44
|
backtrace = e.backtrace.find { |line| line.start_with?(dappfile_path) }
|
45
|
-
message =
|
45
|
+
message = begin
|
46
|
+
case e
|
47
|
+
when NoMethodError
|
48
|
+
e.message =~ /`.*'/
|
49
|
+
"undefined method #{Regexp.last_match}"
|
50
|
+
when NameError then e.message[/.*(?= for)/]
|
51
|
+
else
|
52
|
+
e.message
|
53
|
+
end
|
54
|
+
end
|
46
55
|
message = "#{backtrace[/.*(?=:in)/]}: #{message}" if backtrace
|
47
56
|
raise Error::Dappfile, code: :incorrect, data: { error: e.class.name, message: message }
|
48
57
|
end
|
data/lib/dapp/version.rb
CHANGED
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.7.
|
4
|
+
version: 0.7.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-11-
|
11
|
+
date: 2016-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|