| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """ActiveMaster definition.""" | 5 """ActiveMaster definition.""" |
| 6 | 6 |
| 7 from config_bootstrap import Master | 7 from config_bootstrap import Master |
| 8 | 8 |
| 9 class ChromiumPerfFyi(Master.Master1): | 9 class ChromiumPerfFyi(Master.Master1): |
| 10 project_name = 'Chromium Perf Fyi' | 10 project_name = 'Chromium Perf Fyi' |
| 11 master_port = 8061 | 11 master_port = 8061 |
| 12 slave_port = 8161 | 12 slave_port = 8161 |
| 13 master_port_alt = 8261 | 13 master_port_alt = 8261 |
| 14 buildbot_url = 'http://build.chromium.org/p/chromium.perf.fyi/' | 14 buildbot_url = 'http://build.chromium.org/p/chromium.perf.fyi/' |
| 15 service_account_file = 'service-account-chromium.json' | 15 service_account_file = 'service-account-chromium.json' |
| 16 |
| 17 # master.chromium.perf.fyi uses bulidbucket in an interesting way: |
| 18 # |
| 19 # master.chromium.perf has builders and testers, but master.chromium.perf.fyi |
| 20 # has only testers. The former builds chromium and triggers testers on the FYI |
| 21 # |
| 22 # Some builders on master.chromium.perf run for each commit, and thus trigger |
| 23 # builds on FYI for each commit. FYI does not have capacity to run a build |
| 24 # for each commit, so it uses buildbot "merge requests" feature that collapses |
| 25 # multiple build requests into a single build. |
| 26 # |
| 27 # The chromium.perf -> chromium.perf.fyi build triggering is implemented using |
| 28 # buildbucket which does not support build request merging. As a result, |
| 29 # buildbucket builds are converted to buildbot build requests, one buildbot |
| 30 # build is run (with a proper blamelist) and then, due to the issue, |
| 31 # only one buildbucket build is updated with the build result and the rest |
| 32 # are marked cancelled. |
| 33 # |
| 34 # However, nothing consumes buildbucket build results, including the builds |
| 35 # that trigger them. Only humans care about the triggered builds and they |
| 36 # consume them by looking at the buildbot pages which don't have the issue, |
| 37 # because the build requests are correctly scheduled, and the build with a |
| 38 # correct blamelist is run. So, this is fine. |
| 16 buildbucket_bucket = 'master.chromium.perf.fyi' | 39 buildbucket_bucket = 'master.chromium.perf.fyi' |
| 40 # Buildbucket creates a "changes" table row for each change in each |
| 41 # buildbucket build (unless global change id is specified; it is not), and |
| 42 # buildbot console view does not like it. We can it avoid by telling |
| 43 # buildbucket that all changes have unique URLs (because they are chromium |
| 44 # commit URLs, see long comment above), so buildbucket reuses "changes" table |
| 45 # rows created by gitiles poller. |
| 17 buildbucket_unique_change_urls = True | 46 buildbucket_unique_change_urls = True |
| OLD | NEW |