bintray: fix package creation

This commit is contained in:
Alexander Bayandin 2020-04-21 14:21:34 +01:00
parent b91699d1c0
commit bd24f5a45e
2 changed files with 16 additions and 5 deletions

View File

@ -56,16 +56,27 @@ class Bintray
end
def create_package(repo:, package:, **extra_data_args)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}/#{package}"
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
data = { name: package, public_download_numbers: true }
data[:public_stats] = official_org?
data.merge! extra_data_args
open_api url, "--request", "POST", "--data", data.to_json
open_api url, "--header", "Content-Type: application/json", "--request", "POST", "--data", data.to_json
end
def package_exists?(repo:, package:)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}/#{package}"
open_api url, "--output", "/dev/null", auth: false
begin
open_api url, "--silent", "--output", "/dev/null", auth: false
rescue ErrorDuringExecution => e
stderr = e.output.select { |type,| type == :stderr }
.map { |_, line| line }
.join
raise if e.status.exitstatus != 22 && !stderr.include?("404 Not Found")
false
else
true
end
end
def file_published?(repo:, remote_file:)
@ -113,7 +124,7 @@ class Bintray
end
if !formula_packaged[formula_name] && !package_exists?(repo: bintray_repo, package: bintray_package)
odebug "Creating package #{@bintray_org}/#{bintray_repo}/#{package}"
odebug "Creating package #{@bintray_org}/#{bintray_repo}/#{bintray_package}"
create_package repo: bintray_repo, package: bintray_package
formula_packaged[formula_name] = true
end

View File

@ -19,7 +19,7 @@ describe Bintray, :needs_network do
describe "::package_exists?" do
it "detects a package" do
results = bintray.package_exists?(repo: "bottles", package: "hello")
expect(results.status.exitstatus).to be 0
expect(results).to be true
end
end
end