Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: master/skia_master_scripts/factory.py

Issue 13861012: Change builder names (Closed) Base URL: http://skia.googlecode.com/svn/buildbot/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « master/master_private_builders_cfg.py ('k') | master/skia_master_scripts/utils.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 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 5
6 """Utility class to build the Skia master BuildFactory's. 6 """Utility class to build the Skia master BuildFactory's.
7 7
8 Based on gclient_factory.py and adds Skia-specific steps.""" 8 Based on gclient_factory.py and adds Skia-specific steps."""
9 9
10 10
11 from buildbot.process.properties import WithProperties 11 from buildbot.process.properties import WithProperties
12 from config_private import AUTOGEN_SVN_BASEURL, SKIA_SVN_BASEURL 12 from config_private import AUTOGEN_SVN_BASEURL, SKIA_SVN_BASEURL
13 from master.factory import gclient_factory 13 from master.factory import gclient_factory
14 from master.factory.build_factory import BuildFactory 14 from master.factory.build_factory import BuildFactory
15 from skia_master_scripts import commands as skia_commands 15 from skia_master_scripts import commands as skia_commands
16 import config 16 import config
17 import config_private 17 import config_private
18 import ntpath 18 import ntpath
19 import posixpath 19 import posixpath
20 import utils
20 21
21 22
22 # TODO(epoger): My intent is to make the build steps identical on all platforms 23 # TODO(epoger): My intent is to make the build steps identical on all platforms
23 # and thus remove the need for the whole target_platform parameter. 24 # and thus remove the need for the whole target_platform parameter.
24 # For now, these must match the target_platform values used in 25 # For now, these must match the target_platform values used in
25 # third_party/chromium_buildbot/scripts/master/factory/gclient_factory.py , 26 # third_party/chromium_buildbot/scripts/master/factory/gclient_factory.py ,
26 # because we pass these values into GClientFactory.__init__() . 27 # because we pass these values into GClientFactory.__init__() .
27 TARGET_PLATFORM_LINUX = 'linux' 28 TARGET_PLATFORM_LINUX = 'linux'
28 TARGET_PLATFORM_MAC = 'mac' 29 TARGET_PLATFORM_MAC = 'mac'
29 TARGET_PLATFORM_WIN32 = 'win32' 30 TARGET_PLATFORM_WIN32 = 'win32'
30 31
31 CONFIG_DEBUG = 'Debug' 32 CONFIG_DEBUG = 'Debug'
32 CONFIG_RELEASE = 'Release' 33 CONFIG_RELEASE = 'Release'
33 CONFIG_BENCH = 'Bench'
34 CONFIGURATIONS = [CONFIG_DEBUG, CONFIG_RELEASE] 34 CONFIGURATIONS = [CONFIG_DEBUG, CONFIG_RELEASE]
35 35
36 36
37 class SkiaFactory(BuildFactory): 37 class SkiaFactory(BuildFactory):
38 """Encapsulates data and methods common to the Skia master.cfg files.""" 38 """Encapsulates data and methods common to the Skia master.cfg files."""
39 39
40 def __init__(self, other_subdirs=None, do_upload_results=False, 40 def __init__(self, other_subdirs=None, do_upload_results=False,
41 do_patch_step=False, build_subdir='trunk', 41 do_patch_step=False, build_subdir='trunk',
42 target_platform=None, configuration=CONFIG_DEBUG, 42 target_platform=None, configuration=CONFIG_DEBUG,
43 default_timeout=8*60*60, 43 default_timeout=8*60*60,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 self._do_upload_results = do_upload_results 110 self._do_upload_results = do_upload_results
111 self._do_upload_bench_results = do_upload_results and \ 111 self._do_upload_bench_results = do_upload_results and \
112 perf_output_basedir != None 112 perf_output_basedir != None
113 self._do_patch_step = do_patch_step 113 self._do_patch_step = do_patch_step
114 114
115 if not environment_variables: 115 if not environment_variables:
116 my_env_vars = {} 116 my_env_vars = {}
117 else: 117 else:
118 my_env_vars = dict(environment_variables) 118 my_env_vars = dict(environment_variables)
119 gyp_defines = my_env_vars.get('GYP_DEFINES', '') 119 gyp_defines = my_env_vars.get('GYP_DEFINES', '')
120 my_env_vars['GYP_DEFINES'] = gyp_defines + \ 120 if gyp_defines:
121 ' skia_warnings_as_errors=%d' % int(compile_warnings_as_errors) 121 my_env_vars['GYP_DEFINES'] = gyp_defines + \
122 ' skia_warnings_as_errors=%d' % int(compile_warnings_as_errors)
123 else:
124 my_env_vars['GYP_DEFINES'] = \
125 'skia_warnings_as_errors=%d' % int(compile_warnings_as_errors)
122 126
123 # Get an implementation of SkiaCommands as appropriate for 127 # Get an implementation of SkiaCommands as appropriate for
124 # this target_platform. 128 # this target_platform.
125 workdir = self.TargetPathJoin('build', build_subdir) 129 workdir = self.TargetPathJoin('build', build_subdir)
126 self._skia_cmd_obj = skia_commands.SkiaCommands( 130 self._skia_cmd_obj = skia_commands.SkiaCommands(
127 target_platform=target_platform, factory=self, 131 target_platform=target_platform, factory=self,
128 configuration=configuration, workdir=workdir, 132 configuration=configuration, workdir=workdir,
129 target_arch=None, default_timeout=default_timeout, 133 target_arch=None, default_timeout=default_timeout,
130 environment_variables=my_env_vars) 134 environment_variables=my_env_vars)
131 135
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 self.RunBench() 486 self.RunBench()
483 self.BenchPictures() 487 self.BenchPictures()
484 self.PostBench() 488 self.PostBench()
485 self.CheckForRegressions() 489 self.CheckForRegressions()
486 self.BenchGraphs() 490 self.BenchGraphs()
487 if self._do_upload_bench_results: 491 if self._do_upload_bench_results:
488 self.UploadBenchResults() 492 self.UploadBenchResults()
489 self.UploadBenchResultsToAppEngine() 493 self.UploadBenchResultsToAppEngine()
490 self.UploadBenchGraphs() 494 self.UploadBenchGraphs()
491 495
492 def Build(self, clobber=None): 496 def Build(self, role=None, clobber=None):
493 """Build and return the complete BuildFactory. 497 """Build and return the complete BuildFactory.
494 498
499 role: string; the intended role of this builder. The role affects which
500 steps are run. Known values are given in the utils module.
495 clobber: boolean indicating whether we should clean before building 501 clobber: boolean indicating whether we should clean before building
496 """ 502 """
497 self.CommonSteps(clobber) 503 if not role:
498 self.NonPerfSteps() 504 # If no role is provide, just run everything.
499 self.PerfSteps() 505 self.CommonSteps(clobber)
506 self.NonPerfSteps()
507 self.PerfSteps()
508 elif role == utils.BUILDER_ROLE_COMPILE:
509 # Compile-only builder.
510 self.UpdateSteps()
511 self.Compile(clobber=clobber, build_in_one_step=False)
512 else:
513 self.CommonSteps(clobber)
514 if role == utils.BUILDER_ROLE_TEST:
515 # Test-running builder.
516 self.NonPerfSteps()
517 if self._configuration == CONFIG_DEBUG:
518 # Debug-mode testers run all steps, but release-mode testers don't.
519 self.PerfSteps()
520 elif role == utils.BUILDER_ROLE_PERF:
521 # Perf-only builder.
522 if not self._perf_output_basedir:
523 raise ValueError(
524 'BuildPerfOnly requires perf_output_basedir to be defined.')
525 if self._configuration != CONFIG_RELEASE:
526 raise ValueError('BuildPerfOnly should run in %s configuration.' %
527 CONFIG_RELEASE)
528 self.PerfSteps()
500 return self 529 return self
501
502 def BuildCompileOnly(self, clobber=None):
503 """Build and return the complete BuildFactory, with only the compile step.
504 Does not build in one step; the assumption is that if we're only performing
505 the compile, we want as much information as possible about *which* compile
506 steps are passing and failing.
507
508 clobber: boolean indicating whether we should clean before building
509 """
510 self.UpdateSteps()
511 self.Compile(clobber=clobber, build_in_one_step=False)
512 return self
513
514 def BuildNoPerf(self, clobber=None):
515 """Build and return the complete BuildFactory, without the benchmarking
516 steps.
517
518 clobber: boolean indicating whether we should clean before building
519 """
520 self.CommonSteps(clobber)
521 self.NonPerfSteps()
522 return self
523
524 def BuildPerfOnly(self, clobber=None):
525 """Build and return the complete BuildFactory, with only the benchmarking
526 steps.
527
528 clobber: boolean indicating whether we should clean before building
529 """
530 if not self._perf_output_basedir:
531 raise ValueError(
532 'BuildPerfOnly requires perf_output_basedir to be defined.')
533 if self._configuration != CONFIG_RELEASE:
534 raise ValueError('BuildPerfOnly should run in %s configuration.' %
535 CONFIG_RELEASE)
536 self.CommonSteps(clobber)
537 self.PerfSteps()
538 return self
OLDNEW
« no previous file with comments | « master/master_private_builders_cfg.py ('k') | master/skia_master_scripts/utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698