class KuberKit::Actions::ImageCompiler
Public Instance Methods
call(image_names, options)
click to toggle source
# 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
Private Instance Methods
compile_one(image_name, build_id, build_server_pool)
click to toggle source
# File lib/kuber_kit/actions/image_compiler.rb, line 56 def compile_one(image_name, build_id, build_server_pool) shell = build_server_pool.get_shell image_compiler.call(shell, image_name, build_id) end
compile_simultaneously(image_names, build_id, build_server_pool, compilation_result)
click to toggle source
# File lib/kuber_kit/actions/image_compiler.rb, line 38 def compile_simultaneously(image_names, build_id, build_server_pool, compilation_result) task_group = ui.create_task_group image_names.map do |image_name| ui.print_debug("ImageCompiler", "Started compiling: #{image_name.to_s.green}") task_group.add("Compiling #{image_name.to_s.yellow}") do |task| compilation_result.start_task(image_name) image_result = compile_one(image_name, build_id, build_server_pool) compilation_result.finish_task(image_name, image_result) task.update_title("Compiled #{image_name.to_s.green}") ui.print_debug("ImageCompiler", "Finished compiling: #{image_name}") end end task_group.wait end
generate_build_id()
click to toggle source
# File lib/kuber_kit/actions/image_compiler.rb, line 61 def generate_build_id Time.now.strftime("%H%M%S") end