aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorXu Cheng2015-09-18 20:18:37 +0800
committerXu Cheng2015-09-18 21:54:01 +0800
commit70d31838c61b0aaeb76827b26cb461069c9dff8c (patch)
tree85e01213ca8079a4b91cb7a28ec9cf09297157c8 /Library/Homebrew
parent658bdc25651203f4ddb97f4e5f46ad258c8a73cc (diff)
downloadbrew-70d31838c61b0aaeb76827b26cb461069c9dff8c.tar.bz2
test-bot: use tap object
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/test-bot.rb63
1 files changed, 32 insertions, 31 deletions
diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb
index da82e8536..837091be2 100644
--- a/Library/Homebrew/cmd/test-bot.rb
+++ b/Library/Homebrew/cmd/test-bot.rb
@@ -37,10 +37,30 @@ module Homebrew
EMAIL_SUBJECT_FILE = "brew-test-bot.#{MacOS.cat}.email.txt"
BYTES_IN_1_MEGABYTE = 1024*1024
+ def resolve_test_tap
+ tap = ARGV.value("tap")
+ return Tap.new(*tap_args(tap)) if tap
+
+ if ENV["UPSTREAM_BOT_PARAMS"]
+ bot_argv = ENV["UPSTREAM_BOT_PARAMS"].split " "
+ bot_argv.extend HomebrewArgvExtension
+ tap = bot_argv.value("tap")
+ return Tap.new(*tap_args(tap)) if tap
+ end
+
+ if git_url = ENV["UPSTREAM_GIT_URL"] || ENV["GIT_URL"]
+ # Also can get tap from Jenkins GIT_URL.
+ url_path = git_url.sub(%r{^https?://github\.com/}, "").chomp("/")
+ HOMEBREW_TAP_ARGS_REGEX =~ url_path
+ return Tap.new($1, $3) if $1 && $3 && $3 != "homebrew"
+ end
+
+ # return nil means we are testing core repo.
+ end
+
def homebrew_git_repo(tap = nil)
if tap
- user, repo = tap.split "/"
- HOMEBREW_LIBRARY/"Taps/#{user}/homebrew-#{repo}"
+ tap.path
else
HOMEBREW_REPOSITORY
end
@@ -586,7 +606,7 @@ module Homebrew
return if @skip_homebrew
test "brew", "tests"
if @tap
- test "brew", "readall", @tap
+ test "brew", "readall", @tap.name
else
test "brew", "tests", "--no-compat"
readall_args = ["--aliases"]
@@ -681,11 +701,11 @@ module Homebrew
end
def head_only_tap?(formula)
- formula.head && formula.devel.nil? && formula.stable.nil? && formula.tap == "homebrew/homebrew-head-only"
+ formula.head && formula.devel.nil? && formula.stable.nil? && formula.tap.name == "homebrew/head-only"
end
def devel_only_tap?(formula)
- formula.devel && formula.stable.nil? && formula.tap == "homebrew/homebrew-devel-only"
+ formula.devel && formula.stable.nil? && formula.tap.name == "homebrew/devel-only"
end
def run
@@ -716,23 +736,8 @@ module Homebrew
end
def test_bot
- tap = ARGV.value("tap")
-
- if !tap && ENV["UPSTREAM_BOT_PARAMS"]
- bot_argv = ENV["UPSTREAM_BOT_PARAMS"].split " "
- bot_argv.extend HomebrewArgvExtension
- tap ||= bot_argv.value("tap")
- end
-
- tap.gsub!(/homebrew\/homebrew-/i, "Homebrew/") if tap
-
- git_url = ENV["UPSTREAM_GIT_URL"] || ENV["GIT_URL"]
- if !tap && git_url
- # Also can get tap from Jenkins GIT_URL.
- url_path = git_url.gsub(%r{^https?://github\.com/}, "").gsub(%r{/$}, "")
- HOMEBREW_TAP_ARGS_REGEX =~ url_path
- tap = "#{$1}/#{$3}" if $1 && $3
- end
+ tap = resolve_test_tap
+ repository = Homebrew.homebrew_git_repo tap
if Pathname.pwd == HOMEBREW_PREFIX && ARGV.include?("--cleanup")
odie "cannot use --cleanup from HOMEBREW_PREFIX as it will delete all output."
@@ -768,12 +773,10 @@ module Homebrew
test_bot_ci_reset_and_update if ARGV.include? "--ci-reset-and-update"
- repository = Homebrew.homebrew_git_repo tap
-
# Tap repository if required, this is done before everything else
# because Formula parsing and/or git commit hash lookup depends on it.
- if tap && !repository.directory?
- safe_system "brew", "tap", tap
+ if tap && !tap.installed?
+ safe_system "brew", "tap", tap.name
end
if ARGV.include? "--ci-upload"
@@ -817,8 +820,7 @@ module Homebrew
if pr
pull_pr = if tap
- user, repo = tap.split "/"
- "https://github.com/#{user}/homebrew-#{repo}/pull/#{pr}"
+ "https://github.com/#{tap.user}/homebrew-#{tap.repo}/pull/#{pr}"
else
pr
end
@@ -832,13 +834,12 @@ module Homebrew
bottle_args << "--keep-old" if ARGV.include? "--keep-old"
safe_system "brew", "bottle", *bottle_args
- remote_repo = tap ? tap.tr("/", "-") : "homebrew"
-
+ remote_repo = tap ? "homebrew-#{tap.repo}" : "homebrew"
remote = "git@github.com:BrewTestBot/#{remote_repo}.git"
tag = pr ? "pr-#{pr}" : "testing-#{number}"
safe_system "git", "push", "--force", remote, "master:master", ":refs/tags/#{tag}"
- bintray_repo = Bintray.repository(tap)
+ bintray_repo = Bintray.repository(tap.name)
bintray_repo_url = "https://api.bintray.com/packages/homebrew/#{bintray_repo}"
formula_packaged = {}