dapp 0.0.4 → 0.0.5

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
- YTNlMjdkNDQxZTM1ZmMxZTA3NzU4MTIyMGRmZWUwMWFmZmE1MDgwOA==
4
+ N2E1Mzg3YzlmYzUyMDQ2ZDViNDZlMDU3ZDYxOGEyZWEwNzJlYTZhMA==
5
5
  data.tar.gz: !binary |-
6
- ZDdmYmNhYjc4ZjQxMzBhZTE1MzBkN2Y2YjVjOTRlNmNmYTRmNWI2MA==
6
+ OTkzMzA3NzVlNmIyNTk4MjdkMzYxMmJjOWQ4Yjc4OTNjZmEyODljOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjM2ODRiZmRlNzM3NTQ2OGE0NjY0OGQzYjlkODIwNjBkNGI3MTYyYTQwZWUy
10
- YTVmZWViZjVmNmVhNWFjOWU1ZWQwNGY1ZGJjNGZmNjA2OTc4NGVjYjcwMGUx
11
- YmZjMTI3MDgwYmY2YzQ1YWJmODZkYThlNTZiMWE5NGIyYjNmMDM=
9
+ YWJhNWIyYTZlOWZkOGY2M2E3ZTA2MDc1NmNlYzhjZGNjNDY3ZmZjMzcxZTZh
10
+ NDZmOGMzMmE1NDllMjE3YTdmZGU1N2UwMzA5ZTI0OGI2MzcxYTMzNjA4Y2My
11
+ NDZiOTE3ODFkM2Y1MTUyYzE5ZmYxZGViNDZmMDljMzk0M2NhOTA=
12
12
  data.tar.gz: !binary |-
13
- Y2VhMTRlYzg4MGY2ODJkYzU5YjIyNWNjOGIzN2NiMDhhMmUxZDA4MTBmNjI2
14
- NGE0MzBhMDM1OWJlNTBmZTdjNDczZDdmODljZTkwMDdiNzE0NWM3YTQzMGMz
15
- ZjA2ZTRlZjAzZjBmYTg2ZWQ3MTBmOGRiYmIzMWQ5ZDE1MWU1NDA=
13
+ Y2U4NWNjZmM5YmQ4MGY3MzJjOTEzZGQ3NGUxNTBhZWI1NzE3ZjVjYjA0MmFi
14
+ MzQzNjBmMDhhMDFlZmI1ZWI0ZDAwNDY4Yjc1MDY3ZTEwZDM5NDhlY2EzYTE0
15
+ NjdkOTlkMmNiZGI2NTg3NTJjM2YzNmI5ZDc4NGU0NDI2MzNlYmU=
@@ -186,13 +186,6 @@ module Dapp
186
186
  end
187
187
  # rubocop:enable Metrics/AbcSize
188
188
 
189
- def tag(image_id, name: nil, tag: nil, registry: nil)
190
- return unless name && tag
191
-
192
- new = { name: name, tag: tag, registry: registry }
193
- docker.tag image_id, new
194
- end
195
-
196
189
  def register_atomizer(atomizer)
197
190
  atomizers << atomizer
198
191
  end
@@ -4,43 +4,43 @@ module Dapp
4
4
  module CascadeTagging
5
5
  # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
6
6
  def tag_cascade(image_id)
7
- return unless opts[:cascade_tagging]
7
+ return unless opts[:tag_cascade]
8
8
 
9
9
  log 'Applying cascade tagging'
10
10
 
11
11
  opts[:build_history_length] ||= 10
12
12
 
13
- i = {
13
+ spec = {
14
14
  name: name,
15
15
  tag: home_branch,
16
16
  registry: opts[:docker_registry]
17
17
  }
18
18
 
19
19
  # return if nothing changed
20
- return if image_id == docker.image_id(i)
20
+ return if image_id == docker.image_id(spec)
21
21
 
22
22
  # remove excess tags
23
- tags_to_remove = docker.images(name: i[:name], registry: i[:registry])
24
- .map { |image| image[:tag] }
25
- .select { |tag| tag.start_with?("#{i[:tag]}_") && tag.sub(/^#{i[:tag]}_/, '').to_i >= opts[:build_history_length] }
23
+ tags_to_remove = docker.images(name: spec[:name], registry: spec[:registry])
24
+ tags_to_remove.map! { |image| image[:tag] }
25
+ tags_to_remove.select! { |tag| tag.start_with?("#{spec[:tag]}_") && tag.sub(/^#{spec[:tag]}_/, '').to_i >= opts[:build_history_length] }
26
26
  tags_to_remove.each do |tag_to_remove|
27
- docker.rmi i.merge(tag: tag_to_remove)
27
+ docker.rmi spec.merge(tag: tag_to_remove)
28
28
  end
29
29
 
30
30
  # shift old images: 1 -> 2, 2 -> 3, ..., n -> n+1
31
31
  (opts[:build_history_length] - 1).downto(1).each do |n|
32
- origin = i.merge(tag: "#{i[:tag]}_#{n}")
32
+ origin = spec.merge(tag: "#{spec[:tag]}_#{n}")
33
33
 
34
34
  if docker.image_exist?(**origin)
35
- docker.tag origin, i.merge(tag: "#{i[:tag]}_#{n + 1}")
35
+ docker.tag origin, spec.merge(tag: "#{spec[:tag]}_#{n + 1}")
36
36
  end
37
37
  end
38
38
 
39
39
  # shift top -> 1
40
- docker.tag i, i.merge(tag: "#{i[:tag]}_1") if docker.image_exist?(**i)
40
+ docker.tag spec, spec.merge(tag: "#{spec[:tag]}_1") if docker.image_exist?(**spec)
41
41
 
42
42
  # tag top
43
- docker.tag image_id, i
43
+ docker.tag image_id, spec
44
44
  end
45
45
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
46
46
  end
@@ -12,16 +12,14 @@ module Dapp
12
12
  # run chef-solo for extra dapps
13
13
  extra_dapps.each do |extra_dapp|
14
14
  if dapp_chef_cookbooks_artifact.exist_in_step? "cookbooks/#{extra_dapp}/recipes/#{step}.rb", step
15
- # FIXME: env ???
16
- docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o #{extra_dapp}::#{step},env-#{opts[:basename]}::void", step: step
15
+ docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o mdapp-#{extra_dapp}::#{step},dapp-#{opts[:basename]}::void", step: step
17
16
  end
18
17
  end
19
18
 
20
19
  # run chef-solo for app
21
20
  recipe = [opts[:name], step].compact.join '-'
22
- # FIXME: env ???
23
- if dapp_chef_cookbooks_artifact.exist_in_step? "cookbooks/env-#{opts[:basename]}/recipes/#{recipe}.rb", step
24
- docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o env-#{opts[:basename]}::#{recipe}", step: step
21
+ if dapp_chef_cookbooks_artifact.exist_in_step? "cookbooks/dapp-#{opts[:basename]}/recipes/#{recipe}.rb", step
22
+ docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o dapp-#{opts[:basename]}::#{recipe}", step: step
25
23
  end
26
24
  end
27
25
  end
@@ -41,12 +39,14 @@ module Dapp
41
39
  # init cronicler
42
40
  repo = GitRepo::Chronicler.new(self, 'dapp_cookbooks', build_path: home_branch)
43
41
 
42
+ # verify berks lock
43
+ shellout "berks verify --berksfile=#{home_path 'Berksfile'}"
44
+
44
45
  # vendor cookbooks
45
46
  shellout "berks vendor --berksfile=#{home_path 'Berksfile'} #{repo.chronodir_path 'cookbooks'}", log_verbose: true
46
47
 
47
48
  # create void receipt
48
- # FIXME: env ???
49
- FileUtils.touch repo.chronodir_path 'cookbooks', "env-#{opts[:basename]}", 'recipes', 'void.rb'
49
+ FileUtils.touch repo.chronodir_path 'cookbooks', "dapp-#{opts[:basename]}", 'recipes', 'void.rb'
50
50
 
51
51
  # commit (if smth changed)
52
52
  repo.commit!
@@ -72,8 +72,7 @@ module Dapp
72
72
  def run_chef_solo_for_dapp_common
73
73
  [:prepare, :build, :setup].each do |step|
74
74
  if dapp_chef_cookbooks_artifact.exist_in_step? "cookbooks/dapp-common/recipes/#{step}.rb", step
75
- # FIXME: env ???
76
- docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o dapp-common::#{step},env-#{opts[:basename]}::void", step: step
75
+ docker.run "chef-solo -c /usr/share/dapp/chef_solo.rb -o mdapp-common::#{step},dapp-#{opts[:basename]}::void", step: step
77
76
  end
78
77
  end
79
78
  end
@@ -8,16 +8,12 @@ module Dapp
8
8
  registry: opts[:docker_registry]
9
9
  }
10
10
 
11
- if opts[:tag_commit]
12
- log 'Applying git commit tag'
11
+ { commit: 'rev-parse HEAD', branch: 'rev-parse --abbrev-ref HEAD' }.each do |tag_type, git_command|
12
+ next unless opts[:"tag_#{tag_type}"]
13
13
 
14
- docker.tag image_id, spec.merge(tag: shellout("git -C #{home_path} rev-parse HEAD").stdout.strip)
15
- end
16
-
17
- if opts[:tag_branch]
18
- log 'Applying git branch tag'
14
+ log "Applying git #{tag_type} tag"
19
15
 
20
- docker.tag image_id, spec.merge(tag: shellout("git -C #{home_path} rev-parse --abbrev-ref HEAD").stdout.strip)
16
+ docker.tag image_id, spec.merge(tag: shellout("git -C #{home_path} #{git_command}").stdout.strip)
21
17
  end
22
18
  end
23
19
  end
@@ -20,11 +20,11 @@ BANNER
20
20
  class << self
21
21
  def option(name, args)
22
22
  if args.delete :builder_opt
23
- args[:proc] ||= if args[:boolean]
24
- proc { Dapp::Builder.default_opts[name] = true }
25
- else
26
- proc { |v| Dapp::Builder.default_opts[name] = v }
27
- end
23
+ args[:proc] = if args[:boolean]
24
+ proc { Dapp::Builder.default_opts[name] = true }
25
+ else
26
+ proc { |v| Dapp::Builder.default_opts[name] = v }
27
+ end
28
28
  end
29
29
 
30
30
  super(name, args)
@@ -82,8 +82,8 @@ BANNER
82
82
  boolean: true,
83
83
  builder_opt: true
84
84
 
85
- option :cascade_tagging,
86
- long: '--cascade-tagging',
85
+ option :tag_cascade,
86
+ long: '--tag-cascade',
87
87
  description: 'Use cascade tagging',
88
88
  boolean: true,
89
89
  builder_opt: true
@@ -103,7 +103,6 @@ BANNER
103
103
  option :tag,
104
104
  long: '--tag TAG',
105
105
  description: 'Add tag (can be used one or more times)',
106
- on: :tail,
107
106
  proc: proc { |v| (Dapp::Builder.default_opts[:tags] ||= []) << v }
108
107
 
109
108
  option :tag_commit,
@@ -1,3 +1,3 @@
1
1
  module Dapp
2
- VERSION = '0.0.4'.freeze
2
+ VERSION = '0.0.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-03 00:00:00.000000000 Z
12
+ date: 2016-04-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mixlib-shellout