Class: GitHubRunnerMatrix

Inherits:
Object show all
Defined in:
github_runner_matrix.rb

Constant Summary collapse

NEWEST_HOMEBREW_CORE_MACOS_RUNNER =
:sequoia
OLDEST_HOMEBREW_CORE_MACOS_RUNNER =
:ventura
NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER =
:sonoma

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(testing_formulae, deleted_formulae, all_supported:, dependent_matrix:) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'github_runner_matrix.rb', line 52

def initialize(testing_formulae, deleted_formulae, all_supported:, dependent_matrix:)
  if all_supported && (testing_formulae.present? || deleted_formulae.present? || dependent_matrix)
    raise ArgumentError, "all_supported is mutually exclusive to other arguments"
  end

  @testing_formulae = T.let(testing_formulae, T::Array[TestRunnerFormula])
  @deleted_formulae = T.let(deleted_formulae, T::Array[String])
  @all_supported = T.let(all_supported, T::Boolean)
  @dependent_matrix = T.let(dependent_matrix, T::Boolean)
  @compatible_testing_formulae = T.let({}, T::Hash[GitHubRunner, T::Array[TestRunnerFormula]])
  @formulae_with_untested_dependents = T.let({}, T::Hash[GitHubRunner, T::Array[TestRunnerFormula]])

  @runners = T.let([], T::Array[GitHubRunner])
  generate_runners!

  freeze
end

Instance Attribute Details

#runnersArray<GitHubRunner> (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



42
43
44
# File 'github_runner_matrix.rb', line 42

def runners
  @runners
end

Instance Method Details

#active_runner_specs_hashArray<RunnerSpecHash>

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Array<RunnerSpecHash>)


71
72
73
74
75
# File 'github_runner_matrix.rb', line 71

def active_runner_specs_hash
  runners.select(&:active)
         .map(&:spec)
         .map(&:to_h)
end