Add new chrome.webkit GPU bot to flakiness dashboard.
[WebKit-https.git] / Tools / TestResultServer / static-dashboards / builders.js
1 // Copyright (C) 2012 Google Inc. All rights reserved.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions are
5 // met:
6 //
7 //    * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 //    * Redistributions in binary form must reproduce the above
10 // copyright notice, this list of conditions and the following disclaimer
11 // in the documentation and/or other materials provided with the
12 // distribution.
13 //    * Neither the name of Google Inc. nor the names of its
14 // contributors may be used to endorse or promote products derived from
15 // this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 // @fileoverview File that lists builders, their masters, and logical groupings
30 // of them.
31
32 function BuilderMaster(name, basePath)
33 {
34     this.name = name;
35     this.basePath = basePath;
36 }
37
38 BuilderMaster.prototype.getLogPath = function(builder, buildNumber)
39 {
40     return this.basePath + builder + '/builds/' + buildNumber;
41 };
42
43 CHROMIUM_BUILDER_MASTER = new BuilderMaster('Chromium', 'http://build.chromium.org/p/chromium/builders/');
44 CHROMIUMOS_BUILDER_MASTER = new BuilderMaster('ChromiumChromiumOS', 'http://build.chromium.org/p/chromium.chromiumos/builders/');
45 CHROMIUM_GPU_BUILDER_MASTER = new BuilderMaster('ChromiumGPU', 'http://build.chromium.org/p/chromium.gpu/builders/');
46 CHROMIUM_GPU_FYI_BUILDER_MASTER = new BuilderMaster('ChromiumGPUFYI', 'http://build.chromium.org/p/chromium.gpu.fyi/builders/');
47 CHROMIUM_WEBKIT_BUILDER_MASTER = new BuilderMaster('ChromiumWebkit', 'http://build.chromium.org/p/chromium.webkit/builders/');
48 WEBKIT_BUILDER_MASTER = new BuilderMaster('webkit.org', 'http://build.webkit.org/builders/');
49
50 var LEGACY_BUILDER_MASTERS_TO_GROUPS = {
51     'Chromium': '@DEPS - chromium.org',
52     'ChromiumChromiumOS': '@DEPS CrOS - chromium.org',
53     'ChromiumGPU': '@DEPS - chromium.org',
54     'ChromiumGPUFYI': '@DEPS FYI - chromium.org',
55     'ChromiumWebkit': '@ToT - chromium.org',
56     'webkit.org': '@ToT - webkit.org'
57 };
58
59 function BuilderGroup(isToTWebKit, builders)
60 {
61     this.isToTWebKit = isToTWebKit;
62     // Map of builderName (the name shown in the waterfall) to builderPath (the
63     // path used in the builder's URL)
64     this.builders = {};
65     builders.forEach(function(builderAndFlags) {
66         var builder = builderAndFlags[0];
67         var flags = builderAndFlags[1];
68
69         this.builders[builder] = builder.replace(/[ .()]/g, '_');
70         if (flags & BuilderGroup.DEFAULT_BUILDER)
71             this.defaultBuilder = builder;
72         if (flags & BuilderGroup.EXPECTATIONS_BUILDER)
73             this.expectationsBuilder = builder;
74     }, this);
75 }
76
77 BuilderGroup.prototype.setup = function()
78 {
79     // FIXME: instead of copying these to globals, it would be better if
80     // the rest of the code read things from the BuilderGroup instance directly
81     g_defaultBuilderName = this.defaultBuilder;
82     g_expectationsBuilder = this.expectationsBuilder;
83     g_builders = this.builders;
84 };
85
86 BuilderGroup.TOT_WEBKIT = true;
87 BuilderGroup.DEPS_WEBKIT = false;
88
89 BuilderGroup.DEFAULT_BUILDER = 1 << 1;
90 // For expectations builder, list the fastest builder so that we always have the
91 // most up to date expectations.
92 BuilderGroup.EXPECTATIONS_BUILDER = 1 << 2;
93
94 var BUILDER_TO_MASTER = {};
95 function associateBuildersWithMaster(builders, master)
96 {
97     builders.forEach(function(builderAndFlags) {
98         var builder = builderAndFlags[0];
99         BUILDER_TO_MASTER[builder] = master;
100     });
101 }
102
103 var CHROMIUM_LAYOUT_DEPS_BUILDERS = [
104     ['Webkit Win (deps)', BuilderGroup.DEFAULT_BUILDER],
105     ['Webkit Linux (deps)', BuilderGroup.EXPECTATIONS_BUILDER],
106     ['Webkit Mac10.6 (deps)'],
107 ];
108 associateBuildersWithMaster(CHROMIUM_LAYOUT_DEPS_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
109
110 var CHROMIUM_LAYOUT_TOT_BUILDERS = [
111     ['Webkit Win', BuilderGroup.DEFAULT_BUILDER],
112     ['Webkit Vista'],
113     ['Webkit Win7'],
114     ['Webkit Win (dbg)(1)'],
115     ['Webkit Win (dbg)(2)'],
116     ['Webkit Linux', BuilderGroup.EXPECTATIONS_BUILDER],
117     ['Webkit Linux 32'],
118     ['Webkit Linux (dbg)'],
119     ['Webkit Mac10.5'],
120     ['Webkit Mac10.5 (dbg)(1)'],
121     ['Webkit Mac10.5 (dbg)(2)'],
122     ['Webkit Mac10.6'],
123     ['Webkit Mac10.6 (dbg)'],
124     ['Webkit Mac10.7'],
125 ];
126 associateBuildersWithMaster(CHROMIUM_LAYOUT_TOT_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
127
128 var WEBKIT_TOT_BUILDERS = [
129     ['Chromium Win Release (Tests)', BuilderGroup.DEFAULT_BUILDER],
130     ['Chromium Linux Release (Tests)', BuilderGroup.EXPECTATIONS_BUILDER],
131     ['Chromium Mac Release (Tests)'],
132     ['SnowLeopard Intel Release (Tests)'],
133     ['SnowLeopard Intel Debug (Tests)'],
134     ['GTK Linux 32-bit Release'],
135     ['GTK Linux 32-bit Debug'],
136     ['GTK Linux 64-bit Debug'],
137     ['Qt Linux Release']
138 ];
139 associateBuildersWithMaster(WEBKIT_TOT_BUILDERS, WEBKIT_BUILDER_MASTER);
140
141 var LAYOUT_TESTS_BUILDER_GROUPS = {
142     '@DEPS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_LAYOUT_DEPS_BUILDERS),
143     '@ToT - chromium.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, CHROMIUM_LAYOUT_TOT_BUILDERS),
144     '@ToT - webkit.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, WEBKIT_TOT_BUILDERS),
145 };
146
147 var CHROMIUM_GPU_GTESTS_DEPS_BUILDERS = [
148     ['Win7 Release (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
149     ['Win7 Debug (NVIDIA)'],
150     ['Mac Release (Intel)'],
151     ['Mac Debug (Intel)'],
152     ['Linux Release (NVIDIA)'],
153     ['Linux Debug (NVIDIA)'],
154 ];
155 associateBuildersWithMaster(CHROMIUM_GPU_GTESTS_DEPS_BUILDERS, CHROMIUM_GPU_BUILDER_MASTER);
156
157 var CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS = [
158     ['Win7 Release (ATI)', BuilderGroup.DEFAULT_BUILDER],
159     ['Win7 Release (Intel)'],
160     ['WinXP Release (NVIDIA)'],
161     ['WinXP Debug (NVIDIA)'],
162     ['Mac Release (ATI)'],
163     ['Linux Release (ATI)'],
164     ['Linux Release (Intel)'],
165     ['Win7 Audio'],
166     ['Linux Audio'],
167 ];
168 associateBuildersWithMaster(CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS, CHROMIUM_GPU_FYI_BUILDER_MASTER);
169
170 var CHROMIUM_GPU_GTESTS_TOT_BUILDERS = [
171     ['GPU Win7 (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
172     ['GPU Win7 (dbg) (NVIDIA)'],
173     ['GPU Mac'],
174     ['GPU Mac (dbg)'],
175     ['GPU Linux (NVIDIA)'],
176     ['GPU Linux (dbg) (NVIDIA)'],
177 ];
178 associateBuildersWithMaster(CHROMIUM_GPU_GTESTS_TOT_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
179
180 var CHROMIUM_GPU_TESTS_BUILDER_GROUPS = {
181     '@DEPS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GPU_GTESTS_DEPS_BUILDERS),
182     '@DEPS FYI - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS),
183     '@ToT - chromium.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, CHROMIUM_GPU_GTESTS_TOT_BUILDERS)
184 };
185
186 var CHROMIUM_GTESTS_DEPS_BUILDERS = [
187     ['Win', BuilderGroup.DEFAULT_BUILDER],
188     ['Mac'],
189     ['Linux'],
190     ['Linux x64'],
191     ['XP Tests (1)'],
192     ['XP Tests (2)'],
193     ['XP Tests (3)'],
194     ['Vista Tests (1)'],
195     ['Vista Tests (2)'],
196     ['Vista Tests (3)'],
197     ['Win7 Tests (1)'],
198     ['Win7 Tests (2)'],
199     ['Win7 Tests (3)'],
200     ['Win7 Sync'],
201     ['XP Tests (dbg)(1)'],
202     ['XP Tests (dbg)(2)'],
203     ['XP Tests (dbg)(3)'],
204     ['XP Tests (dbg)(4)'],
205     ['XP Tests (dbg)(5)'],
206     ['XP Tests (dbg)(6)'],
207     ['Win7 Tests (dbg)(1)'],
208     ['Win7 Tests (dbg)(2)'],
209     ['Win7 Tests (dbg)(3)'],
210     ['Win7 Tests (dbg)(4)'],
211     ['Win7 Tests (dbg)(5)'],
212     ['Win7 Tests (dbg)(6)'],
213     ['Interactive Tests (dbg)'],
214     ['Win Aura'],
215     ['Mac10.5 Tests (1)'],
216     ['Mac10.5 Tests (2)'],
217     ['Mac10.5 Tests (3)'],
218     ['Mac10.6 Tests (1)'],
219     ['Mac10.6 Tests (2)'],
220     ['Mac10.6 Tests (3)'],
221     ['Mac10.6 Sync'],
222     ['Mac 10.5 Tests (dbg)(1)'],
223     ['Mac 10.5 Tests (dbg)(2)'],
224     ['Mac 10.5 Tests (dbg)(3)'],
225     ['Mac 10.5 Tests (dbg)(4)'],
226     ['Mac 10.6 Tests (dbg)(1)'],
227     ['Mac 10.6 Tests (dbg)(2)'],
228     ['Mac 10.6 Tests (dbg)(3)'],
229     ['Mac 10.6 Tests (dbg)(4)'],
230     ['Linux Tests x64'],
231     ['Linux Sync'],
232     ['Linux Tests (dbg)(1)'],
233     ['Linux Tests (dbg)(2)'],
234     ['Linux Tests (dbg)(shared)'],
235     ['Linux Tests (Aura dbg)'],
236 ];
237 associateBuildersWithMaster(CHROMIUM_GTESTS_DEPS_BUILDERS, CHROMIUM_BUILDER_MASTER);
238
239 var CHROMIUMOS_GTESTS_DEPS_BUILDERS = [
240     ['Linux ChromiumOS Tester (1)', BuilderGroup.DEFAULT_BUILDER],
241     ['Linux ChromiumOS Tester (2)'],
242     ['Linux ChromiumOS GTK'],
243     ['Linux ChromiumOS Tests (dbg)'],
244 ];
245 associateBuildersWithMaster(CHROMIUMOS_GTESTS_DEPS_BUILDERS, CHROMIUMOS_BUILDER_MASTER);
246
247 var CHROMIUM_GTESTS_TOT_BUILDERS = [
248     ['Win (dbg)', BuilderGroup.DEFAULT_BUILDER],
249     ['Mac10.6 Tests'],
250     ['Linux Tests'],
251 ];
252 associateBuildersWithMaster(CHROMIUM_GTESTS_TOT_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
253
254 var CHROMIUM_GTESTS_BUILDER_GROUPS = {
255     '@DEPS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GTESTS_DEPS_BUILDERS),
256     '@DEPS CrOS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUMOS_GTESTS_DEPS_BUILDERS),
257     '@ToT - chromium.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, CHROMIUM_GTESTS_TOT_BUILDERS),
258 };
259