48 lines
1.2 KiB
Python
Executable file
48 lines
1.2 KiB
Python
Executable 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.
|
|
|
|
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()
|