Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
  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)
Ejemplo n.º 3
0
  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,
    )
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 7
0
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)