brew-test-bot: use Jenkins env, add step.passed?

This commit is contained in:
Mike McQuaid 2013-05-26 01:11:12 +01:00
parent 95834ca588
commit fafa62d1d2

View File

@ -47,6 +47,10 @@ class Step
@status.to_s.upcase @status.to_s.upcase
end end
def passed?
@status == :passed
end
def failed? def failed?
@status == :failed @status == :failed
end end
@ -140,7 +144,12 @@ class Test
@category = __method__ @category = __method__
@start_branch = current_branch @start_branch = current_branch
if @hash or @url # Use Jenkins environment variables if present.
if ENV['GIT_PREVIOUS_COMMIT'] and ENV['GIT_COMMIT']
diff_start_sha1 = ENV['GIT_PREVIOUS_COMMIT']
diff_end_sha1 = ENV['GIT_COMMIT']
test "brew update" if current_branch == "master"
elsif @hash or @url
diff_start_sha1 = current_sha1 diff_start_sha1 = current_sha1
test "brew update" if current_branch == "master" test "brew update" if current_branch == "master"
diff_end_sha1 = current_sha1 diff_end_sha1 = current_sha1
@ -167,7 +176,7 @@ class Test
FileUtils.mkdir_p @log_root FileUtils.mkdir_p @log_root
return unless diff_start_sha1 != diff_end_sha1 return unless diff_start_sha1 != diff_end_sha1
return if @url and steps.last.status != :passed return if @url and not steps.last.passed?
diff_stat = git "diff #{diff_start_sha1}..#{diff_end_sha1} --name-status" diff_stat = git "diff #{diff_start_sha1}..#{diff_end_sha1} --name-status"
diff_stat.each_line do |line| diff_stat.each_line do |line|
@ -206,7 +215,7 @@ class Test
test "brew fetch --build-bottle #{formula}" test "brew fetch --build-bottle #{formula}"
test "brew install --verbose #{dependencies}" unless dependencies.empty? test "brew install --verbose #{dependencies}" unless dependencies.empty?
test "brew install --verbose --build-bottle #{formula}" test "brew install --verbose --build-bottle #{formula}"
return unless steps.last.status == :passed return unless steps.last.passed?
test "brew bottle #{formula}", true test "brew bottle #{formula}", true
bottle_revision = bottle_new_revision(formula_object) bottle_revision = bottle_new_revision(formula_object)
bottle_filename = bottle_filename(formula_object, bottle_revision) bottle_filename = bottle_filename(formula_object, bottle_revision)