Ejemplo n.º 1
0
def OnBuildFailure(context, build):
    """Processes the failed build within the given context.

  Args:
    context (findit_v2.services.context.Context): Scope of the analysis.
    build (buildbucket build.proto): ALL info about the build.

  Returns:
    True if the failed build is supported and analyzed; otherwise False.
  """
    logging.info('Context of analysis: %r', context)
    logging.info('Failed build is: %r', build.id)

    failed_steps = build_util.GetFailedStepsInBuild(context, build)

    if not failed_steps:
        logging.debug('No failed steps found for failed build %d', build.id)
        return False

    compile_steps = [
        fs[0] for fs in failed_steps if fs[1] == StepTypeEnum.COMPILE
    ]
    if compile_steps:
        logging.info('Compile failure found in build %d.', build.id)
        return compile_api.AnalyzeCompileFailure(context, build, compile_steps)

    logging.info('Unsupported failure types: %r',
                 [fs[1] for fs in failed_steps])
    return False
Ejemplo n.º 2
0
 def testAnalyzeCompileFailureNoFirstFailure(self, mock_failures,
                                             mock_first_failure, *_):
     build = Build()
     compile_failures = []
     self.assertFalse(
         compile_api.AnalyzeCompileFailure(self.context, build,
                                           compile_failures))
     mock_failures.assert_called_once_with(build, compile_failures)
     mock_first_failure.assert_called_once_with(self.context, build, {})
Ejemplo n.º 3
0
 def testAnalyzeCompileFailure(self, mock_first_failure_in_build, *_):
     mock_first_failure_in_build.return_value = {
         'failures': {
             self.compile_step_name: {
                 'output_targets': ['target4', 'target1', 'target2']
             }
         }
     }
     self.assertTrue(
         compile_api.AnalyzeCompileFailure(self.context, Build(), []))
Ejemplo n.º 4
0
 def testAnalyzeCompileFailureBailoutUnsupportedProject(self):
     context = Context(luci_project_name='unsupported')
     self.assertFalse(compile_api.AnalyzeCompileFailure(
         context, None, None))
Ejemplo n.º 5
0
 def testAnalyzeCompileFailureBailoutChromium(self):
     context = Context(luci_project_name='chromium')
     self.assertFalse(compile_api.AnalyzeCompileFailure(
         context, None, None))