mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Merge pull request #8970 from jonchang/fix-skip-upload-error
bintray: warn on upload error on uploads
This commit is contained in:
commit
852affd054
@ -42,20 +42,38 @@ class Bintray
|
|||||||
secrets: key)
|
secrets: key)
|
||||||
end
|
end
|
||||||
|
|
||||||
def upload(local_file, repo:, package:, version:, remote_file:, sha256: nil)
|
def upload(local_file, repo:, package:, version:, remote_file:, sha256: nil, warn_on_error: false)
|
||||||
|
unless File.exist? local_file
|
||||||
|
msg = "#{local_file} for upload doesn't exist!"
|
||||||
|
raise Error, msg unless warn_on_error
|
||||||
|
|
||||||
|
# Warn and return early here since we know this upload is going to fail.
|
||||||
|
opoo msg
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/#{remote_file}"
|
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/#{remote_file}"
|
||||||
args = ["--fail", "--upload-file", local_file]
|
args = ["--upload-file", local_file]
|
||||||
args += ["--header", "X-Checksum-Sha2: #{sha256}"] unless sha256.blank?
|
args += ["--header", "X-Checksum-Sha2: #{sha256}"] unless sha256.blank?
|
||||||
result = open_api url, *args
|
args << "--fail" unless warn_on_error
|
||||||
|
result = open_api(url, *args)
|
||||||
|
|
||||||
json = JSON.parse(result.stdout)
|
json = JSON.parse(result.stdout)
|
||||||
raise "Bottle upload failed: #{json["message"]}" if json["message"] != "success"
|
if json["message"] != "success"
|
||||||
|
msg = "Bottle upload failed: #{json["message"]}"
|
||||||
|
raise msg unless warn_on_error
|
||||||
|
|
||||||
|
opoo msg
|
||||||
|
end
|
||||||
|
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
def publish(repo:, package:, version:, file_count:, warn_on_error: false)
|
def publish(repo:, package:, version:, file_count:, warn_on_error: false)
|
||||||
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/publish"
|
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/publish"
|
||||||
result = open_api url, "--request", "POST", "--fail"
|
upload_args = %w[--request POST]
|
||||||
|
upload_args << "--fail" unless warn_on_error
|
||||||
|
result = open_api(url, *upload_args)
|
||||||
json = JSON.parse(result.stdout)
|
json = JSON.parse(result.stdout)
|
||||||
if file_count.present? && json["files"] != file_count
|
if file_count.present? && json["files"] != file_count
|
||||||
message = "Bottle publish failed: expected #{file_count} bottles, but published #{json["files"]} instead."
|
message = "Bottle publish failed: expected #{file_count} bottles, but published #{json["files"]} instead."
|
||||||
@ -78,7 +96,7 @@ class Bintray
|
|||||||
status_code.start_with?("2")
|
status_code.start_with?("2")
|
||||||
end
|
end
|
||||||
|
|
||||||
def mirror_formula(formula, repo: "mirror", publish_package: false)
|
def mirror_formula(formula, repo: "mirror", publish_package: false, warn_on_error: false)
|
||||||
package = Utils::Bottles::Bintray.package formula.name
|
package = Utils::Bottles::Bintray.package formula.name
|
||||||
|
|
||||||
create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
|
create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
|
||||||
@ -93,16 +111,17 @@ class Bintray
|
|||||||
|
|
||||||
upload(
|
upload(
|
||||||
formula.downloader.cached_location,
|
formula.downloader.cached_location,
|
||||||
repo: repo,
|
repo: repo,
|
||||||
package: package,
|
package: package,
|
||||||
version: version,
|
version: version,
|
||||||
sha256: formula.stable.checksum,
|
sha256: formula.stable.checksum,
|
||||||
remote_file: filename,
|
remote_file: filename,
|
||||||
|
warn_on_error: warn_on_error,
|
||||||
)
|
)
|
||||||
return destination_url unless publish_package
|
return destination_url unless publish_package
|
||||||
|
|
||||||
odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
|
odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
|
||||||
publish(repo: repo, package: package, version: version, file_count: 1)
|
publish(repo: repo, package: package, version: version, file_count: 1, warn_on_error: warn_on_error)
|
||||||
|
|
||||||
destination_url
|
destination_url
|
||||||
end
|
end
|
||||||
@ -185,11 +204,12 @@ class Bintray
|
|||||||
|
|
||||||
odebug "Uploading #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}/#{filename}"
|
odebug "Uploading #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}/#{filename}"
|
||||||
upload(tag_hash["local_filename"],
|
upload(tag_hash["local_filename"],
|
||||||
repo: bintray_repo,
|
repo: bintray_repo,
|
||||||
package: bintray_package,
|
package: bintray_package,
|
||||||
version: version,
|
version: version,
|
||||||
remote_file: filename,
|
remote_file: filename,
|
||||||
sha256: sha256)
|
sha256: sha256,
|
||||||
|
warn_on_error: warn_on_error)
|
||||||
when sha256
|
when sha256
|
||||||
# File exists, checksum matches.
|
# File exists, checksum matches.
|
||||||
odebug "#{filename} is already published with matching hash."
|
odebug "#{filename} is already published with matching hash."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user