Merge pull request #12282 from Bo98/pr-upload-only
dev-cmd/pr-upload: add --upload-only switch
This commit is contained in:
commit
59d25d3ae8
@ -26,6 +26,8 @@ module Homebrew
|
|||||||
switch "--warn-on-upload-failure",
|
switch "--warn-on-upload-failure",
|
||||||
description: "Warn instead of raising an error if the bottle upload fails. "\
|
description: "Warn instead of raising an error if the bottle upload fails. "\
|
||||||
"Useful for repairing bottle uploads that previously failed."
|
"Useful for repairing bottle uploads that previously failed."
|
||||||
|
switch "--upload-only",
|
||||||
|
description: "Skip running `brew bottle` before uploading."
|
||||||
flag "--committer=",
|
flag "--committer=",
|
||||||
description: "Specify a committer name and email in `git`'s standard author format."
|
description: "Specify a committer name and email in `git`'s standard author format."
|
||||||
flag "--github-org=",
|
flag "--github-org=",
|
||||||
@ -36,6 +38,9 @@ module Homebrew
|
|||||||
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
|
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
|
||||||
"Homebrew's default."
|
"Homebrew's default."
|
||||||
|
|
||||||
|
conflicts "--upload-only", "--keep-old"
|
||||||
|
conflicts "--upload-only", "--no-commit"
|
||||||
|
|
||||||
named_args :none
|
named_args :none
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -90,61 +95,63 @@ module Homebrew
|
|||||||
odie "No bottle JSON files found in the current working directory" if json_files.blank?
|
odie "No bottle JSON files found in the current working directory" if json_files.blank?
|
||||||
bottles_hash = bottles_hash_from_json_files(json_files, args)
|
bottles_hash = bottles_hash_from_json_files(json_files, args)
|
||||||
|
|
||||||
bottle_args = ["bottle", "--merge", "--write"]
|
unless args.upload_only?
|
||||||
bottle_args << "--verbose" if args.verbose?
|
bottle_args = ["bottle", "--merge", "--write"]
|
||||||
bottle_args << "--debug" if args.debug?
|
bottle_args << "--verbose" if args.verbose?
|
||||||
bottle_args << "--keep-old" if args.keep_old?
|
bottle_args << "--debug" if args.debug?
|
||||||
bottle_args << "--root-url=#{args.root_url}" if args.root_url
|
bottle_args << "--keep-old" if args.keep_old?
|
||||||
bottle_args << "--committer=#{args.committer}" if args.committer
|
bottle_args << "--root-url=#{args.root_url}" if args.root_url
|
||||||
bottle_args << "--no-commit" if args.no_commit?
|
bottle_args << "--committer=#{args.committer}" if args.committer
|
||||||
bottle_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
|
bottle_args << "--no-commit" if args.no_commit?
|
||||||
bottle_args += json_files
|
bottle_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
|
||||||
|
bottle_args += json_files
|
||||||
|
|
||||||
if args.dry_run?
|
if args.dry_run?
|
||||||
dry_run_service = if github_packages?(bottles_hash)
|
dry_run_service = if github_packages?(bottles_hash)
|
||||||
# GitHub Packages has its own --dry-run handling.
|
# GitHub Packages has its own --dry-run handling.
|
||||||
nil
|
nil
|
||||||
elsif github_releases?(bottles_hash)
|
elsif github_releases?(bottles_hash)
|
||||||
"GitHub Releases"
|
"GitHub Releases"
|
||||||
else
|
else
|
||||||
odie "Service specified by root_url is not recognized"
|
odie "Service specified by root_url is not recognized"
|
||||||
|
end
|
||||||
|
|
||||||
|
if dry_run_service
|
||||||
|
puts <<~EOS
|
||||||
|
brew #{bottle_args.join " "}
|
||||||
|
Upload bottles described by these JSON files to #{dry_run_service}:
|
||||||
|
#{json_files.join("\n ")}
|
||||||
|
EOS
|
||||||
|
return
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if dry_run_service
|
check_bottled_formulae!(bottles_hash)
|
||||||
puts <<~EOS
|
|
||||||
brew #{bottle_args.join " "}
|
# This will be run by `brew bottle` and `brew audit` later so run it first
|
||||||
Upload bottles described by these JSON files to #{dry_run_service}:
|
# to not start spamming during normal output.
|
||||||
#{json_files.join("\n ")}
|
Homebrew.install_bundler_gems!
|
||||||
EOS
|
|
||||||
|
safe_system HOMEBREW_BREW_FILE, *bottle_args
|
||||||
|
|
||||||
|
json_files = Dir["*.bottle.json"]
|
||||||
|
if json_files.blank?
|
||||||
|
puts "No bottle JSON files after merge, no upload needed!"
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
check_bottled_formulae!(bottles_hash)
|
# Reload the JSON files (in case `brew bottle --merge` generated
|
||||||
|
# `all: $SHA256` bottles)
|
||||||
|
bottles_hash = bottles_hash_from_json_files(json_files, args)
|
||||||
|
|
||||||
# This will be run by `brew bottle` and `brew audit` later so run it first
|
# Check the bottle commits did not break `brew audit`
|
||||||
# to not start spamming during normal output.
|
unless args.no_commit?
|
||||||
Homebrew.install_bundler_gems!
|
audit_args = ["audit", "--skip-style"]
|
||||||
|
audit_args << "--verbose" if args.verbose?
|
||||||
safe_system HOMEBREW_BREW_FILE, *bottle_args
|
audit_args << "--debug" if args.debug?
|
||||||
|
audit_args += bottles_hash.keys
|
||||||
json_files = Dir["*.bottle.json"]
|
safe_system HOMEBREW_BREW_FILE, *audit_args
|
||||||
if json_files.blank?
|
end
|
||||||
puts "No bottle JSON files after merge, no upload needed!"
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
# Reload the JSON files (in case `brew bottle --merge` generated
|
|
||||||
# `all: $SHA256` bottles)
|
|
||||||
bottles_hash = bottles_hash_from_json_files(json_files, args)
|
|
||||||
|
|
||||||
# Check the bottle commits did not break `brew audit`
|
|
||||||
unless args.no_commit?
|
|
||||||
audit_args = ["audit", "--skip-style"]
|
|
||||||
audit_args << "--verbose" if args.verbose?
|
|
||||||
audit_args << "--debug" if args.debug?
|
|
||||||
audit_args += bottles_hash.keys
|
|
||||||
safe_system HOMEBREW_BREW_FILE, *audit_args
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if github_releases?(bottles_hash)
|
if github_releases?(bottles_hash)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user