test-bot: autopublish existing bottles on Bintray.
This commit is contained in:
parent
4f13858fe8
commit
e9e2be9404
@ -664,11 +664,14 @@ module Homebrew
|
||||
jenkins = ENV['JENKINS_HOME']
|
||||
job = ENV['UPSTREAM_JOB_NAME']
|
||||
id = ENV['UPSTREAM_BUILD_ID']
|
||||
raise "Missing Jenkins variables!" unless jenkins and job and id
|
||||
raise "Missing Jenkins variables!" if !jenkins || !job || !id
|
||||
|
||||
user = ENV["BINTRAY_USER"]
|
||||
key = ENV["BINTRAY_KEY"]
|
||||
raise "Missing Bintray variables!" unless user && key
|
||||
bintray_user = ENV["BINTRAY_USER"]
|
||||
bintray_key = ENV["BINTRAY_KEY"]
|
||||
# Skip taps for now until we're using Bintray for Homebrew/homebrew
|
||||
if !tap && (!bintray_user || !bintray_key)
|
||||
raise "Missing BINTRAY_USER or BINTRAY_KEY variables!"
|
||||
end
|
||||
|
||||
ARGV << '--verbose'
|
||||
|
||||
@ -700,6 +703,14 @@ module Homebrew
|
||||
safe_system "brew", "pull", "--clean", pull_pr
|
||||
end
|
||||
|
||||
existing_bottles = {}
|
||||
Dir.glob("*.bottle*.tar.gz") do |filename|
|
||||
# Skip taps for now until we're using Bintray for Homebrew/homebrew
|
||||
next if tap
|
||||
formula = bottle_filename_formula_name filename
|
||||
existing_bottles[formula.name] = !!formula.bottle
|
||||
end
|
||||
|
||||
ENV["GIT_AUTHOR_NAME"] = ENV["GIT_COMMITTER_NAME"]
|
||||
ENV["GIT_AUTHOR_EMAIL"] = ENV["GIT_COMMITTER_EMAIL"]
|
||||
safe_system "brew", "bottle", "--merge", "--write", *Dir["*.bottle.rb"]
|
||||
@ -710,19 +721,6 @@ module Homebrew
|
||||
tag = pr ? "pr-#{pr}" : "testing-#{number}"
|
||||
safe_system "git", "push", "--force", remote, "master:master", ":refs/tags/#{tag}"
|
||||
|
||||
# SourceForge upload (will be removed soon)
|
||||
path = "/home/frs/project/m/ma/machomebrew/Bottles/"
|
||||
if tap
|
||||
tap_user, tap_repo = tap.split "/"
|
||||
path += "#{tap_repo}/"
|
||||
end
|
||||
url = "BrewTestBot,machomebrew@frs.sourceforge.net:#{path}"
|
||||
|
||||
rsync_args = %w[--partial --progress --human-readable --compress]
|
||||
rsync_args += Dir["*.bottle*.tar.gz"] + [url]
|
||||
|
||||
safe_system "rsync", *rsync_args
|
||||
|
||||
# Bintray upload (will take over soon)
|
||||
repo = if tap
|
||||
tap.sub("/", "-") + "-bottles"
|
||||
@ -735,22 +733,38 @@ module Homebrew
|
||||
next if tap
|
||||
version = BottleVersion.parse(filename).to_s
|
||||
formula = bottle_filename_formula_name filename
|
||||
existing_bottle = existing_bottles[formula.name]
|
||||
|
||||
repo_url = "https://api.bintray.com/packages/homebrew/#{repo}"
|
||||
package_url = "#{repo_url}/#{formula}"
|
||||
unless system "curl", "--silent", "--fail", "--output", "/dev/null", package_url
|
||||
safe_system "curl", "--silent", "--fail", "-u#{user}:#{key}",
|
||||
safe_system "curl", "--silent", "--fail",
|
||||
"-u#{bintray_user}:#{bintray_key}",
|
||||
"-H", "Content-Type: application/json",
|
||||
"-d", "{\"name\":\"#{formula}\"}", repo_url
|
||||
puts
|
||||
end
|
||||
|
||||
content_url = "https://api.bintray.com/content/homebrew/#{repo}/#{formula}/#{version}/#{filename}"
|
||||
safe_system "curl", "--silent", "--fail", "-u#{user}:#{key}",
|
||||
"-T", filename, content_url
|
||||
content_url += "?publish=1&override=1" if existing_bottle
|
||||
safe_system "curl", "--silent", "--fail",
|
||||
"-u#{bintray_user}:#{bintray_key}", "-T", filename, content_url
|
||||
puts
|
||||
end
|
||||
|
||||
# SourceForge upload (will be removed soon)
|
||||
path = "/home/frs/project/m/ma/machomebrew/Bottles/"
|
||||
if tap
|
||||
tap_user, tap_repo = tap.split "/"
|
||||
path += "#{tap_repo}/"
|
||||
end
|
||||
url = "BrewTestBot,machomebrew@frs.sourceforge.net:#{path}"
|
||||
|
||||
rsync_args = %w[--partial --progress --human-readable --compress]
|
||||
rsync_args += Dir["*.bottle*.tar.gz"] + [url]
|
||||
|
||||
safe_system "rsync", *rsync_args
|
||||
|
||||
safe_system "git", "tag", "--force", tag
|
||||
safe_system "git", "push", "--force", remote, "refs/tags/#{tag}"
|
||||
return
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user