diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb
index 0be845b623a35930742a2ef185e0978b5dcb78f8..663fdebefc1c0233d027c3ce35997d93c031d031 100644
--- a/Library/Homebrew/cmd/test-bot.rb
+++ b/Library/Homebrew/cmd/test-bot.rb
@@ -746,13 +746,16 @@ module Homebrew
 
     def run
       cleanup_before
-      download
-      setup
-      homebrew
-      formulae.each do |f|
-        formula(f)
+      begin
+        download
+        setup
+        homebrew
+        formulae.each do |f|
+          formula(f)
+        end
+      ensure
+        cleanup_after
       end
-      cleanup_after
       check_results
     end
   end
@@ -1019,9 +1022,8 @@ module Homebrew
         file.write email_subject
       end
     end
-
+  ensure
     HOMEBREW_CACHE.children.each(&:rmtree) if ARGV.include? "--clean-cache"
-
     Homebrew.failed = any_errors
   end
 end