mirror of
https://github.com/Homebrew/brew.git
synced 2026-10-28 09:34:42 +08:00
Merge pull request #24127 from Homebrew/bump-failure-fix
bump: use refresh_for_tag for per-OS detection
This commit is contained in:
2 files changed
+34
-4
No files matched your search
@@ -267,11 +267,11 @@ module Homebrew
|
||||
end
|
||||
systems = { macos:, linux: :linux }
|
||||
detected_versions = {}
|
||||
loaded_cask = Cask::CaskLoader.load(sourcefile_path)
|
||||
detected_system_options = BumpVersionParser::VERSION_PLATFORMS.filter_map do |version_type, (system, arch)|
|
||||
os = systems.fetch(system)
|
||||
tag = Utils::Bottles::Tag.new(system: os, arch:)
|
||||
SimulateSystem.with(os:, arch:) do
|
||||
loaded_cask = Cask::CaskLoader.load(sourcefile_path)
|
||||
loaded_cask.refresh_for_tag(tag) do
|
||||
next if tag.macos? && !loaded_cask.supports_macos?
|
||||
next if tag.linux? && !loaded_cask.supports_linux?
|
||||
|
||||
|
||||
@@ -525,6 +525,7 @@ RSpec.describe Homebrew::DevCmd::Bump do
|
||||
RUBY
|
||||
end
|
||||
|
||||
let(:newest_macos) { MacOSVersion.new(HOMEBREW_MACOS_NEWEST_SUPPORTED).to_sym }
|
||||
let(:c_per_os) do
|
||||
path = mktmpdir/"per_os_cask.rb"
|
||||
path.write <<~RUBY
|
||||
@@ -551,8 +552,26 @@ RSpec.describe Homebrew::DevCmd::Bump do
|
||||
name "Foo"
|
||||
end
|
||||
RUBY
|
||||
macos = MacOSVersion.new(HOMEBREW_MACOS_NEWEST_SUPPORTED).to_sym
|
||||
Homebrew::SimulateSystem.with(os: macos, arch: :arm) { Cask::CaskLoader.load(path) }
|
||||
Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) { Cask::CaskLoader.load(path) }
|
||||
end
|
||||
|
||||
let(:c_macos_versions) do
|
||||
path = mktmpdir/"macos_versions_cask.rb"
|
||||
path.write <<~RUBY
|
||||
cask "macos_versions_cask" do
|
||||
on_monterey :or_newer do
|
||||
version "1.2.3"
|
||||
sha256 :no_check
|
||||
end
|
||||
|
||||
url "https://brew.sh/foo-\#{version.dots_to_underscores}.zip"
|
||||
name "Foo"
|
||||
depends_on :macos
|
||||
|
||||
app "Foo.app"
|
||||
end
|
||||
RUBY
|
||||
Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) { Cask::CaskLoader.load(path) }
|
||||
end
|
||||
|
||||
it "resolves existing per-OS versions for each supported platform" do
|
||||
@@ -614,6 +633,17 @@ RSpec.describe Homebrew::DevCmd::Bump do
|
||||
})
|
||||
end
|
||||
|
||||
it "resolves versions by architecture when a cask cannot be evaluated on Linux" do
|
||||
allow(bump).to receive(:livecheck_result).and_return([Version.new("1.2.4"), nil])
|
||||
|
||||
version_info = Homebrew::SimulateSystem.with(os: newest_macos, arch: :arm) do
|
||||
bump.retrieve_versions_by_arch(
|
||||
formula_or_cask: c_macos_versions, repositories: [], name: "macos-versions-cask",
|
||||
)
|
||||
end
|
||||
expect(version_info.new_version).to eq(Homebrew::BumpVersionParser.new(general: Version.new("1.2.4")))
|
||||
end
|
||||
|
||||
it "simulates only arm and consolidates to a general version when `depends_on arch:` restricts to arm-only" do
|
||||
allow(c_arm_only).to receive(:sourcefile_path).and_return(Pathname("arm_only_cask.rb"))
|
||||
allow(Cask::CaskLoader).to receive(:load).and_return(c_arm_only)
|
||||
|
||||
Reference in new issue
Block a user