Module: Polyrun::Coverage::CollectorFragmentMeta
- Defined in:
- lib/polyrun/coverage/collector_fragment_meta.rb
Overview
Shard / worker naming for coverage JSON fragments (N×M CI vs run-shards).
Class Method Summary collapse
- .finish_debug_time_label ⇒ Object
-
.fragment_default_basename_from_env(env = ENV) ⇒ Object
Default fragment basename (no extension) for coverage/polyrun-fragment-<basename>.json.
- .fragment_meta_from_env(basename) ⇒ Object
- .merge_fragment_meta!(m, fm) ⇒ Object
- .shard_matrix_index_value(matrix_total) ⇒ Object
Class Method Details
.finish_debug_time_label ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/polyrun/coverage/collector_fragment_meta.rb', line 21 def finish_debug_time_label mt = ENV["POLYRUN_SHARD_MATRIX_TOTAL"].to_i if mt > 1 "worker pid=#{$$} shard(matrix)=#{ENV.fetch("POLYRUN_SHARD_MATRIX_INDEX", "?")} worker(local)=#{ENV.fetch("POLYRUN_SHARD_INDEX", "?")} Coverage::Collector.finish (write fragment)" elsif ENV["POLYRUN_SHARD_TOTAL"].to_i > 1 "worker pid=#{$$} worker=#{ENV.fetch("POLYRUN_SHARD_INDEX", "?")} Coverage::Collector.finish (write fragment)" else "Coverage::Collector.finish (write fragment)" end end |
.fragment_default_basename_from_env(env = ENV) ⇒ Object
Default fragment basename (no extension) for coverage/polyrun-fragment-<basename>.json.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/polyrun/coverage/collector_fragment_meta.rb', line 8 def fragment_default_basename_from_env(env = ENV) local = env.fetch("POLYRUN_SHARD_INDEX", "0") mt = env["POLYRUN_SHARD_MATRIX_TOTAL"].to_i if mt > 1 mi = env.fetch("POLYRUN_SHARD_MATRIX_INDEX", "0") "shard#{mi}-worker#{local}" elsif env["POLYRUN_SHARD_TOTAL"].to_i > 1 "worker#{local}" else local end end |
.fragment_meta_from_env(basename) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/polyrun/coverage/collector_fragment_meta.rb', line 32 def (basename) mt = ENV["POLYRUN_SHARD_MATRIX_TOTAL"].to_i { basename: basename, worker_index: ENV.fetch("POLYRUN_SHARD_INDEX", "0"), shard_matrix_index: shard_matrix_index_value(mt) } end |
.merge_fragment_meta!(m, fm) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/polyrun/coverage/collector_fragment_meta.rb', line 47 def (m, fm) return m if fm.nil? m["polyrun_fragment_basename"] = fm[:basename].to_s if fm[:basename] m["polyrun_worker_index"] = fm[:worker_index].to_s if fm[:worker_index] m["polyrun_shard_matrix_index"] = fm[:shard_matrix_index].to_s if fm[:shard_matrix_index] m end |
.shard_matrix_index_value(matrix_total) ⇒ Object
41 42 43 44 45 |
# File 'lib/polyrun/coverage/collector_fragment_meta.rb', line 41 def shard_matrix_index_value(matrix_total) return nil if matrix_total <= 1 ENV.fetch("POLYRUN_SHARD_MATRIX_INDEX", "0") end |