| # -*- python -*- |
| # ex: set syntax=python: |
| |
| # Extend paths to allow loading zorg and config modules. |
| import os, sys |
| path = os.path.join(os.environ.get('HOME'), 'zorg', 'buildbot', 'osuosl', 'master') |
| if path not in sys.path: |
| sys.path.append(path) |
| path = os.path.join(os.environ.get('HOME'), 'zorg') |
| if path not in sys.path: |
| sys.path.append(path) |
| |
| # This is the dictionary that the buildmaster pays attention to. We also use |
| # a shorter alias to save typing. |
| c = BuildmasterConfig = {} |
| |
| import config |
| |
| # Reload stuff automatically. |
| # |
| # FIXME: Find better way. |
| reload(config.slaves) |
| reload(config.builders) |
| reload(config.status) |
| reload(config) |
| |
| ####### BUILDSLAVES |
| |
| c['slaves'] = config.slaves.get_build_slaves() |
| c['slavePortnum'] = 9990 |
| |
| ####### CHANGESOURCES |
| |
| from buildbot.changes.pb import PBChangeSource |
| from zorg.buildbot.changes.llvmgitpoller import LLVMPoller as llvmgitpoller |
| |
| llvm_projects = [ |
| "llvm", |
| "cfe", |
| "clang-tests-external", |
| "clang-tools-extra", |
| "polly", |
| "compiler-rt", |
| "flang", |
| "libc", |
| "libcxx", |
| "libcxxabi", |
| "libunwind", |
| "lld", |
| "lldb", |
| "mlir", |
| "openmp", |
| "lnt", |
| "test-suite"] |
| |
| c['change_source'] = [PBChangeSource()] |
| c['change_source'].append( |
| llvmgitpoller(projects=llvm_projects, |
| repourl='http://git.lab.llvm.org/llvm/llvm-project.git', |
| workdir='gitpoller-workdir', |
| pollinterval=120)) |
| |
| ####### RESOURCE USAGE |
| |
| # Number of build records to maintain per builder. |
| c['buildHorizon'] = 200 |
| |
| # Number of logs to maintain per builder. |
| c['logHorizon'] = 200 |
| |
| # Number of events (connect, disconnect, etc.) to maintain. |
| c['eventHorizon'] = 100 |
| |
| # Number of builds to cache in memory. |
| c['buildCacheSize'] = 200 |
| |
| # Do not compress logs to reduce server load. |
| # We have a designated build master with large enough HDD. |
| c['logCompressionLimit'] = False |
| |
| ####### BUILDERS |
| |
| c['builders'] = builders = list(config.builders.get_builders()) |
| |
| ####### STATUS TARGETS |
| |
| # Schedule builds and email for all non-experimental and non-LNT builders. |
| # The LNT performance buildbots have a very long delay and commonly fail |
| # late and if they fail, all of them fail together. As the same failures |
| # are are normally also catched by the faster non-LNT bots, there is no need |
| # to warn everybody about failures in the performance bots. Tobias Grosser |
| # will keep track of such. |
| standard_builders = [b['name'] for b in builders |
| if not b['category'].endswith('.exp') and |
| not b['category'].endswith('.on-demand') and |
| # List of builders to keep quite |
| not b['name'].startswith('perf-x86_64') and |
| not b['name'] == 'sanitizer_x86_64-freebsd' and |
| not b['name'] == 'clang-native-arm-lnt-perf' and |
| not b['name'] == 'sanitizer_x86_64-freebsd'] |
| |
| # TODO: Fix buildbot.status.words.IRC to accept a list of builders to report |
| # instead of defining categories to report. Otherwise we could report more |
| # than requested. |
| standard_categories = [b['category'] for b in builders |
| if not b['category'].endswith('.exp') and |
| not b['category'].endswith('.on-demand') and |
| not b['name'].startswith('perf-x86_64')] |
| |
| c['status'] = config.status.get_status_targets(standard_builders, |
| standard_categories) |
| |
| ####### SCHEDULERS |
| |
| c['schedulers'] = config.schedulers.getSingleBranchSchedulers( |
| c['builders']) |
| |
| ####### PROJECT IDENTITY |
| |
| c['title'] = "LLVM" |
| c['titleURL'] = "http://llvm.org/" |
| c['buildbotURL'] = "http://lab.llvm.org:8011/" |
| |
| ####### DB URL |
| |
| c['db_url'] = "postgresql://localhost/buildmasterdb" |