chromium的buildbot项目中正常情况,一般分为UpdateScript、Update、Compile、Archive、run tests这几个step,当然也可以根据需要关闭、订制、改写step。通常都是在master端订制slave的相关step,然后在运行时,master给slave发送相关消息。master.cfg文件的factory_properties变量可以添加参数来定制该slave的相关行为。
#下面分别是UpdateScript、Update、Compile、Archive、test开关;
- build-infrastructure/scripts/master/factory/gclient_factory.py :
- class GClientFactory(object):
- def BaseFactory(self, gclient_spec=None, official_release=False,
- factory_properties=None, build_properties=None,
- delay_compile_step=False, sudo_for_remove=False,
- gclient_deps=None, slave_type=None):
- ......
- #factory_cmd_obj.AddUpdateScriptStep()
- ......
- elif not delay_compile_step:
- pass #by
- #self.AddUpdateStep(gclient_spec, factory_properties, factory,
- # sudo_for_remove, gclient_depsgclient_deps=gclient_deps)
- ......
- def BuildFactory(self, target='Release', clobber=False, tests=None, mode=None,
- slave_type='BuilderTester', options=None,
- compile_timeout=1200, build_url=None, project=None,
- factory_properties=None, gclient_deps=None):
- ......
- # Add the compile step if needed.
- if slave_type in ['BuilderTester', 'Builder', 'Trybot', 'NASBuilder']:
- #pass #by
- factory_cmd_obj.AddCompileStep(project or self._project, clobber,
- modemode=mode, optionsoptions=options,
- timeout=compile_timeout)
- ......
- build-infrastructure/scripts/master/factory/chromium_factory.py:
- class ChromiumFactory(gclient_factory.GClientFactory):
- def ChromiumFactory(self, target='Release', clobber=False, tests=None,
- mode=None, slave_type='BuilderTester',
- options=None, compile_timeout=1200, build_url=None,
- project=None, factory_properties=None, gclient_deps=None):
- ......
- if factory_properties.get('archive_build'):
- chromium_cmd_obj.AddArchiveBuild(factory_properties=factory_properties)
- ......
- # Add all the tests.
- self._AddTests(chromium_cmd_obj, tests, mode, factory_properties)
- ......
转载于:https://blog.51cto.com/dailyc/1050725