def RunRemote(site_config, options, patch_pool): """Schedule remote tryjobs.""" logging.info('Scheduling remote tryjob(s): %s', ', '.join(options.build_configs)) user_email = FindUserEmail(options) # Figure out the cbuildbot command line to pass in. args = CbuildbotArgs(options) args += PushLocalPatches(site_config, patch_pool.local_patches, user_email) logging.info('Submitting tryjob...') results = [] for build_config in options.build_configs: tryjob = request_build.RequestBuild( build_config=build_config, display_label=DisplayLabel(site_config, options, build_config), branch=options.branch, extra_args=args, user_email=user_email, ) results.append(tryjob.Submit(dryrun=False)) if options.json: # Just is a list of dicts, not a list of lists. print(json.dumps([r._asdict() for r in results])) else: print('Tryjob submitted!') print('To view your tryjobs, visit:') for r in results: print(' %s' % r.url)
def PerformStage(self): """Schedule child builds for this buildspec.""" # build_identifier, _ = self._run.GetCIDBHandle() # build_id = build_identifier.cidb_id # master_buildbucket_id = self._run.options.buildbucket_id version_info = self.GetWorkspaceVersionInfo() extra_args = [ '--buildbot', '--version', version_info.VersionString(), ] if self._run.options.debug: extra_args.append('--debug') for child_name in self._run.config.slave_configs: child = request_build.RequestBuild( build_config=child_name, # See crbug.com/940969. These id's get children killed during # multiple quick builds. # master_cidb_id=build_id, # master_buildbucket_id=master_buildbucket_id, extra_args=extra_args, ) result = child.Submit(dryrun=self._run.options.debug) logging.info( 'Build_name %s buildbucket_id %s created_timestamp %s', result.build_config, result.buildbucket_id, result.created_ts) logging.PrintBuildbotLink(result.build_config, result.url)
def _CreateRequestBuild(self, build_name, build_config, master_build_id, master_buildbucket_id, requested_bot): if build_config.build_affinity: requested_bot = self._FindMostRecentBotId(build_config.name, self._run.manifest_branch) logging.info('Requesting build affinity for %s against %s', build_config.name, requested_bot) cbb_extra_args = ['--buildbot'] if master_buildbucket_id is not None: cbb_extra_args.append('--master-buildbucket-id') cbb_extra_args.append(master_buildbucket_id) # Adding cbb_snapshot_revision to child builders to force child builders # to sync to annealing snapshot revision. if self._run.options.cbb_snapshot_revision: logging.info('Adding --cbb_snapshot_revision=%s for %s', self._run.options.cbb_snapshot_revision, build_config.name) cbb_extra_args.append('--cbb_snapshot_revision') cbb_extra_args.append(self._run.options.cbb_snapshot_revision) return request_build.RequestBuild( build_config=build_name, display_label=build_config.display_label, branch=self._run.manifest_branch, master_cidb_id=master_build_id, master_buildbucket_id=master_buildbucket_id, extra_args=cbb_extra_args, requested_bot=requested_bot, )
def _CreateJobUnknown(self): return request_build.RequestBuild(build_config=self.UNKNOWN_CONFIG, display_label=self.DISPLAY_LABEL, branch='master', extra_args=(), user_email='default_email', master_buildbucket_id=None)
def _CreateJobMax(self): return request_build.RequestBuild( build_config=self.BUILD_CONFIG_MAX, luci_builder=self.LUCI_BUILDER, display_label=self.DISPLAY_LABEL, branch=self.BRANCH, extra_args=self.PASS_THROUGH_ARGS, user_email=self.TEST_EMAIL, master_cidb_id=self.MASTER_CIDB_ID, master_buildbucket_id=self.MASTER_BUILDBUCKET_ID, bucket=self.TEST_BUCKET)
def testPostConfigToBuildBucket(self): """Check syntax for PostConfigsToBuildBucket.""" self.PatchObject(auth, 'Login') self.PatchObject(auth, 'Token') self.PatchObject(request_build.RequestBuild, '_PutConfigToBuildBucket') remote_try_job = request_build.RequestBuild( build_config=self.BUILD_CONFIG_MIN, display_label=self.DISPLAY_LABEL, branch='master', extra_args=(), user_email='default_email', master_buildbucket_id=None) remote_try_job.Submit(testjob=True, dryrun=True)
def RunRemote(site_config, options, patch_pool, infra_testing=False, production=False): """Schedule remote tryjobs.""" logging.info('Scheduling remote tryjob(s): %s', ', '.join(options.build_configs)) luci_builder = None if infra_testing: luci_builder = config_lib.LUCI_BUILDER_INFRA_TESTING # Production tryjobs actually execute in the Release group elif production: luci_builder = config_lib.LUCI_BUILDER_RELEASE user_email = FindUserEmail(options) # Figure out the cbuildbot command line to pass in. args = CbuildbotArgs(options) args += PushLocalPatches(patch_pool.local_patches, user_email) if options.debug: # default_debug template used to test email templates before they go live. email_template = 'default_debug' else: email_template = 'tryjob' logging.info('Submitting tryjob...') results = [] for build_config in options.build_configs: tryjob = request_build.RequestBuild( build_config=build_config, luci_builder=luci_builder, display_label=DisplayLabel(site_config, options, build_config), branch=options.branch, extra_args=args, user_email=user_email, email_template=email_template, ) results.append(tryjob.Submit(dryrun=False)) if options.json: # Just is a list of dicts, not a list of lists. print(json.dumps([r._asdict() for r in results])) else: print('Tryjob submitted!') print('To view your tryjobs, visit:') for r in results: print(' %s' % r.url)
def _CreateJobMin(self): return request_build.RequestBuild(build_config=self.BUILD_CONFIG_MIN)