aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/test-bot.rb55
1 files changed, 32 insertions, 23 deletions
diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb
index 53e2d815a..58b30c405 100644
--- a/Library/Homebrew/cmd/test-bot.rb
+++ b/Library/Homebrew/cmd/test-bot.rb
@@ -299,28 +299,31 @@ module Homebrew
travis_pr = ENV["TRAVIS_PULL_REQUEST"] && ENV["TRAVIS_PULL_REQUEST"] != "false"
- # Use Jenkins environment variables if present.
- if no_args? && ENV["GIT_PREVIOUS_COMMIT"] && ENV["GIT_COMMIT"] \
- && !ENV["ghprbPullLink"]
- diff_start_sha1 = shorten_revision ENV["GIT_PREVIOUS_COMMIT"]
- diff_end_sha1 = shorten_revision ENV["GIT_COMMIT"]
- elsif ENV["TRAVIS_COMMIT_RANGE"]
- diff_start_sha1, diff_end_sha1 = ENV["TRAVIS_COMMIT_RANGE"].split "..."
- diff_end_sha1 = ENV["TRAVIS_COMMIT"] if travis_pr
- elsif ENV["ghprbPullLink"]
- # Handle Jenkins pull request builder plugin.
+ # Use Jenkins GitHub Pull Request Builder plugin variables for
+ # pull request jobs.
+ if ENV["ghprbPullLink"]
@url = ENV["ghprbPullLink"]
@hash = nil
test "git", "checkout", "origin/master"
+ # Use Travis CI pull-request variables for pull request jobs.
elsif travis_pr
@url = "https://github.com/#{ENV["TRAVIS_REPO_SLUG"]}/pull/#{ENV["TRAVIS_PULL_REQUEST"]}"
@hash = nil
- elsif @hash
- diff_start_sha1 = current_sha1
- brew_update
- diff_end_sha1 = current_sha1
end
+ # Use Jenkins Git plugin variables for master branch jobs.
+ if ENV["GIT_PREVIOUS_COMMIT"] && ENV["GIT_COMMIT"]
+ diff_start_sha1 = ENV["GIT_PREVIOUS_COMMIT"]
+ diff_end_sha1 = ENV["GIT_COMMIT"]
+ # Use Travis CI Git variables for master or branch jobs.
+ elsif ENV["TRAVIS_COMMIT_RANGE"]
+ diff_start_sha1, diff_end_sha1 = ENV["TRAVIS_COMMIT_RANGE"].split "..."
+ # Otherwise just use the current SHA-1 (which may be overriden later)
+ else
+ diff_end_sha1 = diff_start_sha1 = current_sha1
+ end
+
+ # Handle no arguments being passed on the command-line e.g. `brew test-bot`.
if no_args?
if diff_start_sha1 == diff_end_sha1 || \
single_commit?(diff_start_sha1, diff_end_sha1)
@@ -328,19 +331,26 @@ module Homebrew
else
@name = "#{diff_start_sha1}-#{diff_end_sha1}"
end
+ # Handle formulae arguments being passed on the command-line e.g. `brew test-bot wget fish`.
+ elsif @formulae && @formulae.any?
+ @name = "#{@formulae.first}-#{diff_end_sha1}"
+ # Handle a hash being passed on the command-line e.g. `brew test-bot 1a2b3c`.
elsif @hash
test "git", "checkout", @hash
diff_start_sha1 = "#{@hash}^"
diff_end_sha1 = @hash
@name = @hash
- elsif ENV["TRAVIS_PULL_REQUEST"] && ENV["TRAVIS_PULL_REQUEST"] != "false"
- @short_url = @url.gsub("https://github.com/", "")
- @name = "#{@short_url}-#{diff_end_sha1}"
- # TODO: in future this may need to use `brew pull` to push the right commit.
+ # Handle a URL being passed on the command-line or through Jenkins/Travis
+ # environment variables e.g.
+ # `brew test-bot https://github.com/Homebrew/homebrew/pull/44293`.
elsif @url
- diff_start_sha1 = current_sha1
- test "brew", "pull", "--clean", @url
- diff_end_sha1 = current_sha1
+ # TODO: in future Travis CI may need to also use `brew pull` to e.g. push
+ # the right commit to BrewTestBot.
+ unless travis_pr
+ diff_start_sha1 = current_sha1
+ test "brew", "pull", "--clean", @url
+ diff_end_sha1 = current_sha1
+ end
@short_url = @url.gsub("https://github.com/", "")
if @short_url.include? "/commit/"
# 7 characters should be enough for a commit (not 40).
@@ -350,8 +360,7 @@ module Homebrew
@name = "#{@short_url}-#{diff_end_sha1}"
end
else
- diff_start_sha1 = diff_end_sha1 = current_sha1
- @name = "#{@formulae.first}-#{diff_end_sha1}"
+ raise "Cannot set @name: invalid command-line arguments!"
end
if ENV["TRAVIS"]