Class: Blubber::Tagger

Inherits:
Object
  • Object
show all
Defined in:
lib/blubber/tagger.rb

Instance Method Summary collapse

Constructor Details

#initialize(layer:, image_id:, logger: nil) ⇒ Tagger

Returns a new instance of Tagger.



9
10
11
12
13
# File 'lib/blubber/tagger.rb', line 9

def initialize(layer:, image_id:, logger: nil)
  @layer = layer
  @image_id = image_id
  @logger = logger
end

Instance Method Details

#projectObject



21
22
23
# File 'lib/blubber/tagger.rb', line 21

def project
  "#{docker_registry}/#{layer}"
end

#runObject



15
16
17
18
19
# File 'lib/blubber/tagger.rb', line 15

def run
  logger.info ui.color("#{layer}: PUSHING", :yellow)

  push
end

#tagsObject



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/blubber/tagger.rb', line 25

def tags
  @tags ||= [].tap do |tags|
    tags << "#{commit}#{dirty? ? '-dirty' : ''}"

    unless dirty?
      tags << branch_name.gsub(/[^\w.-]/, '_') unless branch_name.empty?
      tags << 'latest' if branch_name == 'master'
    end

    tags += File.read("#{layer}/Dockerfile").scan(/LABEL version=([\w][\w.-]*)/).flatten
  end
end