Class: KuberKit::Actions::ImageCompiler

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/actions/image_compiler.rb

Instance Method Summary collapse

Instance Method Details

#call(image_names, options) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/kuber_kit/actions/image_compiler.rb', line 12

def call(image_names, options)
  compilation_result = KuberKit::Actions::ActionResult.new()

  build_id = generate_build_id
  build_server_pool = build_server_pool_factory.create()

  image_dependency_resolver.each_with_deps(image_names) do |dep_image_names|
    ui.print_debug("ImageCompiler", "Scheduling to compile: #{dep_image_names.inspect}. Limit: #{configs.compile_simultaneous_limit}")

    if compilation_result.succeeded?
      compile_simultaneously(dep_image_names, build_id, build_server_pool, compilation_result)
    end
  end

  build_server_pool.disconnect_all

  compilation_result
rescue KuberKit::Error => e
  ui.print_error("Error", e.message)

  compilation_result.failed!(e.message)
  
  false
end