Sha256: a2929df1e0cb2e3b2aef11603024595555f0c774d5a74f658564302ea3b21b0e

Contents?: true

Size: 1.42 KB

Versions: 31

Compression:

Stored size: 1.42 KB

Contents

require 'active_support/core_ext/module/delegation'

class Ufo::Docker
  class Pusher
    include Ufo::Util

    delegate :full_image_name, to: :builder
    attr_reader :last_image_name
    def initialize(image, options)
      @options = options
      # full_image_name ultimately uses @options, so @last_image_name assignment
      # line must be defined after setting @options.
      @last_image_name = image || full_image_name
    end

    def push
      update_auth_token
      start_time = Time.now
      message = "Pushed #{last_image_name} docker image."
      if @options[:noop]
        message = "NOOP #{message}"
      else
        command = "docker push #{last_image_name}"
        puts "=> #{command}".color(:green)
        success = execute(command, use_system: true)
        unless success
          puts "ERROR: The docker image fail to push.".color(:red)
          exit 1
        end
      end
      took = Time.now - start_time
      message << "\nDocker push took #{pretty_time(took)}.".color(:green)
      puts message unless @options[:mute]
    end

    def builder
      @builder ||= Builder.new(@options.merge(image: last_image_name))
    end

    def update_auth_token
      auth = Ufo::Ecr::Auth.new(last_image_name)
      # wont update auth token unless the image being pushed in the ECR image format
      auth.update
    end

    # full_image - does not include the tag
    def image_name
      settings[:image]
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
ufo-5.0.7 lib/ufo/docker/pusher.rb
ufo-5.0.6 lib/ufo/docker/pusher.rb
ufo-5.0.5 lib/ufo/docker/pusher.rb
ufo-5.0.4 lib/ufo/docker/pusher.rb
ufo-5.0.3 lib/ufo/docker/pusher.rb
ufo-5.0.2 lib/ufo/docker/pusher.rb
ufo-5.0.1 lib/ufo/docker/pusher.rb
ufo-5.0.0 lib/ufo/docker/pusher.rb
ufo-4.6.3 lib/ufo/docker/pusher.rb
ufo-4.6.2 lib/ufo/docker/pusher.rb
ufo-4.6.1 lib/ufo/docker/pusher.rb
ufo-4.6.0 lib/ufo/docker/pusher.rb
ufo-4.5.11 lib/ufo/docker/pusher.rb
ufo-4.5.10 lib/ufo/docker/pusher.rb
ufo-4.5.9 lib/ufo/docker/pusher.rb
ufo-4.5.8 lib/ufo/docker/pusher.rb
ufo-4.5.7 lib/ufo/docker/pusher.rb
ufo-4.5.6 lib/ufo/docker/pusher.rb
ufo-4.5.5 lib/ufo/docker/pusher.rb
ufo-4.5.4 lib/ufo/docker/pusher.rb