#!/usr/bin/env python # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging import multiprocessing import sys import time import traceback import buildbot POLL_INTERVAL = 600 BUILD_HISTORY_COUNT = 200 BUILD_RESULTS_COUNT = 50 def FetchLatestBuildResults(builder): try: builder.FetchRecentBuilds(BUILD_HISTORY_COUNT) print 'Fetching results for', builder for build in builder.LastBuilds(BUILD_RESULTS_COUNT): for step in build.steps.itervalues(): step.results # pylint: disable=pointless-statement except: # multiprocessing doesn't give useful stack traces, so print it here. traceback.print_exc(file=sys.stderr) print raise def main(): logging.getLogger().setLevel(logging.INFO) builders = buildbot.Builders('chromium.perf') process_pool = multiprocessing.Pool(4) while True: print 'Refreshing...' buildbot.Update('chromium.perf', builders) process_pool.map(FetchLatestBuildResults, builders.itervalues()) print 'Refreshed!' time.sleep(POLL_INTERVAL) if __name__ == '__main__': main()