dapp 0.0.4 → 0.0.5
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 +8 -8
 - data/lib/dapp/builder.rb +0 -7
 - data/lib/dapp/builder/cascade_tagging.rb +11 -11
 - data/lib/dapp/builder/chefify.rb +8 -9
 - data/lib/dapp/builder/git_tagging.rb +4 -8
 - data/lib/dapp/cli/build.rb +7 -8
 - data/lib/dapp/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
3 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                N2E1Mzg3YzlmYzUyMDQ2ZDViNDZlMDU3ZDYxOGEyZWEwNzJlYTZhMA==
         
     | 
| 
       5 
5 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                OTkzMzA3NzVlNmIyNTk4MjdkMzYxMmJjOWQ4Yjc4OTNjZmEyODljOQ==
         
     | 
| 
       7 
7 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
8 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                YWJhNWIyYTZlOWZkOGY2M2E3ZTA2MDc1NmNlYzhjZGNjNDY3ZmZjMzcxZTZh
         
     | 
| 
      
 10 
     | 
    
         
            +
                NDZmOGMzMmE1NDllMjE3YTdmZGU1N2UwMzA5ZTI0OGI2MzcxYTMzNjA4Y2My
         
     | 
| 
      
 11 
     | 
    
         
            +
                NDZiOTE3ODFkM2Y1MTUyYzE5ZmYxZGViNDZmMDljMzk0M2NhOTA=
         
     | 
| 
       12 
12 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                Y2U4NWNjZmM5YmQ4MGY3MzJjOTEzZGQ3NGUxNTBhZWI1NzE3ZjVjYjA0MmFi
         
     | 
| 
      
 14 
     | 
    
         
            +
                MzQzNjBmMDhhMDFlZmI1ZWI0ZDAwNDY4Yjc1MDY3ZTEwZDM5NDhlY2EzYTE0
         
     | 
| 
      
 15 
     | 
    
         
            +
                NjdkOTlkMmNiZGI2NTg3NTJjM2YzNmI5ZDc4NGU0NDI2MzNlYmU=
         
     | 
    
        data/lib/dapp/builder.rb
    CHANGED
    
    | 
         @@ -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[: 
     | 
| 
      
 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 
     | 
    
         
            -
                     
     | 
| 
      
 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( 
     | 
| 
      
 20 
     | 
    
         
            +
                    return if image_id == docker.image_id(spec)
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                    # remove excess tags
         
     | 
| 
       23 
     | 
    
         
            -
                    tags_to_remove = docker.images(name:  
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 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  
     | 
| 
      
 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 =  
     | 
| 
      
 32 
     | 
    
         
            +
                      origin = spec.merge(tag: "#{spec[:tag]}_#{n}")
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                      if docker.image_exist?(**origin)
         
     | 
| 
       35 
     | 
    
         
            -
                        docker.tag origin,  
     | 
| 
      
 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  
     | 
| 
      
 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,  
     | 
| 
      
 43 
     | 
    
         
            +
                    docker.tag image_id, spec
         
     | 
| 
       44 
44 
     | 
    
         
             
                  end
         
     | 
| 
       45 
45 
     | 
    
         
             
                  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
         
     | 
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
    
        data/lib/dapp/builder/chefify.rb
    CHANGED
    
    | 
         @@ -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 
     | 
    
         
            -
                           
     | 
| 
       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 
     | 
    
         
            -
                       
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       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 
     | 
    
         
            -
                       
     | 
| 
       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 
     | 
    
         
            -
                         
     | 
| 
       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 
     | 
    
         
            -
                     
     | 
| 
       12 
     | 
    
         
            -
                       
     | 
| 
      
 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 
     | 
    
         
            -
                       
     | 
| 
       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}  
     | 
| 
      
 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
         
     | 
    
        data/lib/dapp/cli/build.rb
    CHANGED
    
    | 
         @@ -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]  
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 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 : 
     | 
| 
       86 
     | 
    
         
            -
                         long: '--cascade 
     | 
| 
      
 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,
         
     | 
    
        data/lib/dapp/version.rb
    CHANGED
    
    
    
        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 
     | 
    
         
            +
              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- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-04-04 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: mixlib-shellout
         
     |