diff options
| author | Xu Cheng | 2016-01-14 15:52:10 +0800 | 
|---|---|---|
| committer | Xu Cheng | 2016-01-14 19:32:53 +0800 | 
| commit | e6159eb579a46aa1db5e95541d16a90378891653 (patch) | |
| tree | e8510eee6d29081808ce5958b81b340e4124036d /Library/Homebrew/cmd/test-bot.rb | |
| parent | c4dcf8b7b28988bde1dfc0d045a9992ccaba757e (diff) | |
| download | brew-e6159eb579a46aa1db5e95541d16a90378891653.tar.bz2 | |
test-bot: always return tap object
Also simplify the code and add Travis auto detect.
Closes Homebrew/homebrew#48060
Diffstat (limited to 'Library/Homebrew/cmd/test-bot.rb')
| -rw-r--r-- | Library/Homebrew/cmd/test-bot.rb | 64 | 
1 files changed, 24 insertions, 40 deletions
diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb index d6a2c9504..29690b645 100644 --- a/Library/Homebrew/cmd/test-bot.rb +++ b/Library/Homebrew/cmd/test-bot.rb @@ -37,19 +37,19 @@ module Homebrew    BYTES_IN_1_MEGABYTE = 1024*1024    def resolve_test_tap -    tap = ARGV.value("tap") -    if tap -      tap = Tap.fetch(tap) -      return tap unless tap.core_formula_repository? +    if tap = ARGV.value("tap") +      return Tap.fetch(tap) +    end + +    if tap = ENV["TRAVIS_REPO_SLUG"] +      return Tap.fetch(tap)      end      if ENV["UPSTREAM_BOT_PARAMS"]        bot_argv = ENV["UPSTREAM_BOT_PARAMS"].split " "        bot_argv.extend HomebrewArgvExtension -      tap = bot_argv.value("tap") -      if tap -        tap = Tap.fetch(tap) -        return tap unless tap.core_formula_repository? +      if tap = bot_argv.value("tap") +        return Tap.fetch(tap)        end      end @@ -57,21 +57,12 @@ module Homebrew        # Also can get tap from Jenkins GIT_URL.        url_path = git_url.sub(%r{^https?://github\.com/}, "").chomp("/").sub(%r{\.git$}, "")        begin -        tap = Tap.fetch(url_path) -        return tap unless tap.core_formula_repository? +        return Tap.fetch(url_path)        rescue        end      end -    # return nil means we are testing core repo. -  end - -  def homebrew_git_repo(tap = nil) -    if tap -      tap.path -    else -      HOMEBREW_REPOSITORY -    end +    CoreFormulaRepository.instance    end    class Step @@ -219,7 +210,7 @@ module Homebrew        @modified_formula = []        @steps = []        @tap = options[:tap] -      @repository = Homebrew.homebrew_git_repo @tap +      @repository = @tap.path        @skip_homebrew = options[:skip_homebrew]        url_match = argument.match HOMEBREW_PULL_OR_COMMIT_URL_REGEX @@ -383,12 +374,7 @@ module Homebrew        return unless diff_start_sha1 != diff_end_sha1        return if @url && steps.last && !steps.last.passed? -      if @tap -        formula_path = %w[Formula HomebrewFormula].find { |dir| (@repository/dir).directory? } || "" -      else -        formula_path = "Library/Formula" -      end - +      formula_path = @tap.formula_dir.to_s        @added_formulae += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "A")        @modified_formula += diff_formulae(diff_start_sha1, diff_end_sha1, formula_path, "M")        @formulae += @added_formulae + @modified_formula @@ -435,10 +421,10 @@ module Homebrew      def formula(formula_name)        @category = "#{__method__}.#{formula_name}" -      canonical_formula_name = if @tap -        "#{@tap}/#{formula_name}" -      else +      canonical_formula_name = if @tap.core_formula_repository?          formula_name +      else +        "#{@tap}/#{formula_name}"        end        test "brew", "uses", "--recursive", canonical_formula_name @@ -653,9 +639,7 @@ module Homebrew        @category = __method__        return if @skip_homebrew        test "brew", "tests" -      if @tap -        test "brew", "readall", @tap.name -      else +      if @tap.core_formula_repository?          tests_args = ["--no-compat"]          readall_args = ["--aliases"]          if RUBY_VERSION.split(".").first.to_i >= 2 @@ -665,6 +649,8 @@ module Homebrew          test "brew", "tests", *tests_args          test "brew", "readall", *readall_args          test "brew", "update-test" +      else +        test "brew", "readall", @tap.name        end      end @@ -798,7 +784,7 @@ module Homebrew      ENV["GIT_AUTHOR_NAME"] = ENV["GIT_COMMITTER_NAME"] = "BrewTestBot"      ENV["GIT_AUTHOR_EMAIL"] = ENV["GIT_COMMITTER_EMAIL"] = "brew-test-bot@googlegroups.com" -    ENV["GIT_WORK_TREE"] = Homebrew.homebrew_git_repo(tap) +    ENV["GIT_WORK_TREE"] = tap.path      ENV["GIT_DIR"] = "#{ENV["GIT_WORK_TREE"]}/.git"      pr = ENV["UPSTREAM_PULL_REQUEST"] @@ -811,10 +797,10 @@ module Homebrew      safe_system "brew", "update"      if pr -      pull_pr = if tap -        "https://github.com/#{tap.user}/homebrew-#{tap.repo}/pull/#{pr}" -      else +      pull_pr = if tap.core_formula_repository?          pr +      else +        "https://github.com/#{tap.user}/homebrew-#{tap.repo}/pull/#{pr}"        end        safe_system "brew", "pull", "--clean", pull_pr      end @@ -823,7 +809,7 @@ module Homebrew      bottle_args << "--keep-old" if ARGV.include? "--keep-old"      system "brew", "bottle", *bottle_args -    remote_repo = tap ? "homebrew-#{tap.repo}" : "homebrew" +    remote_repo = tap.core_formula_repository ? "homebrew" : "homebrew-#{tap.repo}"      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}" @@ -908,9 +894,7 @@ module Homebrew      tap = resolve_test_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 && !tap.installed? -      safe_system "brew", "tap", tap.name -    end +    safe_system "brew", "tap", tap.name unless tap.installed?      if ARGV.include? "--ci-upload"        return test_ci_upload(tap)  | 
