Sha256: cdf1ec72c0ca721ae58fe5beb3a532df8212d4953fd9c0ed6c9fe82e53933c7a
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
require "fileutils" require "parallel" require "yaml" require_relative "executor" require_relative "logger" require_relative "matrix" module Dmatrix class Runner def initialize(options:, run_command:, logger: Logger.new) @options = options @run_command = run_command @logger = logger end def call reset_log_dir results = Parallel.map(combinations, in_threads: 4) do |combination| Executor.new( combination: combination, run_command: run_command, log_dir: log_dir ).build_run.tap do |result| logger.log_result(result) end end if results.any?(&:failure?) exit(1) end end private attr_reader :options, :run_command, :logger def combinations Matrix.new(input_combinations).combinations end def input_combinations YAML.load_file(matrix_path).fetch("matrix") end def matrix_path options.fetch(:matrix) end def reset_log_dir FileUtils.mkdir_p(log_dir) FileUtils.rm_r(log_files) end def log_dir options.fetch(:log_dir) end def log_files Dir.glob(File.join(log_dir, "*.log")) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dmatrix-0.1.0 | lib/dmatrix/runner.rb |