Class: Kettle::Family::ReleaseStateCheck

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/family/release_state_check.rb

Constant Summary collapse

KETTLE_JEM_STATE_PATHS =
[
  ".structuredmerge/kettle-jem.lock",
  ".kettle-jem.lock",
  ".structuredmerge/kettle-jem.yml",
  ".kettle-jem.yml"
].freeze
TRANSFER_CHANGELOG_TOTAL_UNSET =
Object.new.freeze
CACHE_MISS =
Object.new.freeze

Instance Method Summary collapse

Constructor Details

#initialize(members:, config: nil, jobs: nil) ⇒ ReleaseStateCheck

Returns a new instance of ReleaseStateCheck.



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/kettle/family/release_state_check.rb', line 24

def initialize(members:, config: nil, jobs: nil)
  @members = members
  @config = config
  @jobs = jobs
  @github_latest_release_by_repo = {}
  @transfer_changelog_status_by_root = {}
  @transfer_changelog_lag_by_key = {}
  @transfer_changelog_total_count = TRANSFER_CHANGELOG_TOTAL_UNSET
  @cache_mutex = Mutex.new
  @transfer_changelog_total_mutex = Mutex.new
end

Instance Method Details

#results(event_handler: nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/kettle/family/release_state_check.rb', line 36

def results(event_handler: nil)
  return branch_results(event_handler: event_handler) unless release_target_branches.empty?
  return parallel_map(members) { |member| check_shared_changelog_member_or_local(member, event_handler: event_handler) } if shared_changelog?

  member_results = parallel_map(members) do |member|
    member_branch_results = member_local_branch_results(member, event_handler: event_handler)
    member_branch_results || check_member(member, event_handler: event_handler)
  end
  member_results.flat_map { |result| Array(result) }
end