blob: bf01a634a75f5373d75fb85f19c535adab97f35a [file]
#!/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.
from __future__ import absolute_import
from __future__ import print_function
import logging
import multiprocessing
import sys
import time
import traceback
import buildbot
import six
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 six.itervalues(build.steps):
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, six.itervalues(builders))
print('Refreshed!')
time.sleep(POLL_INTERVAL)
if __name__ == '__main__':
main()