diff --git a/Library/Homebrew/github_runner_matrix.rb b/Library/Homebrew/github_runner_matrix.rb index d4dab5766d349d..17f5355da041fe 100644 --- a/Library/Homebrew/github_runner_matrix.rb +++ b/Library/Homebrew/github_runner_matrix.rb @@ -60,6 +60,7 @@ def initialize(testing_formulae, deleted_formulae, all_supported:, dependent_mat @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]]) + @deploy_new_x86_64_runner = T.let(all_supported, T::Boolean) @runners = T.let([], T::Array[GitHubRunner]) generate_runners! @@ -122,7 +123,7 @@ def create_runner(platform, arch, spec, macos_version = nil) NEWEST_HOMEBREW_CORE_MACOS_RUNNER = :sequoia OLDEST_HOMEBREW_CORE_MACOS_RUNNER = :ventura - NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER = :sonoma + NEWEST_DEFAULT_HOMEBREW_CORE_INTEL_MACOS_RUNNER = :sonoma sig { params(macos_version: MacOSVersion).returns(T::Boolean) } def runner_enabled?(macos_version) @@ -175,10 +176,6 @@ def generate_runners! ephemeral_suffix << "-long" if runner_timeout == GITHUB_ACTIONS_LONG_TIMEOUT ephemeral_suffix.freeze - # `#deploy_new_x86_64_runner?` is expensive, so: - # - avoid calling it if we don't have to - # - cache the result to a variable to avoid calling it multiple times - deploy_new_x86_64_runner = @all_supported || deploy_new_x86_64_runner? MacOSVersion::SYMBOLS.each_value do |version| macos_version = MacOSVersion.new(version) next unless runner_enabled?(macos_version) @@ -202,7 +199,13 @@ def generate_runners! ) @runners << create_runner(:macos, :arm64, spec, macos_version) - next if macos_version > NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER && !deploy_new_x86_64_runner + # `#deploy_new_x86_64_runner?` is expensive, so: + # - avoid calling it if we don't have to + # - cache the result to a variable to avoid calling it multiple times + if macos_version > NEWEST_DEFAULT_HOMEBREW_CORE_INTEL_MACOS_RUNNER && + !(@deploy_new_x86_64_runner ||= deploy_new_x86_64_runner?) + next + end github_runner_available = macos_version <= NEWEST_GITHUB_ACTIONS_INTEL_MACOS_RUNNER && macos_version >= OLDEST_GITHUB_ACTIONS_INTEL_MACOS_RUNNER