cbuildbot_stages.py: Refactoring of ReportStage.

This refactoring is a step toward removing the requirement of an
ArchiveStage in order to do anything in the ReportStage.  It reduces the
usage of the ArchiveStage object during ReportStage.PerformStage() to
one place.  A subsequent CL will complete the purge.  This will allow
runs without an ArchiveStage (or board) to still do something in
ReportStage.

BUG=chromium:331594
TEST=`buildbot/run_tests`
TEST=`cbuildbot --remote --buildbot --debug x86-mario-paladin`

Change-Id: I2467c659ac2b0dd32635d9a321938cc69296a946
Reviewed-on: https://chromium-review.googlesource.com/182228
Tested-by: Matt Tennant <mtennant@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Matt Tennant <mtennant@chromium.org>
diff --git a/scripts/cbuildbot.py b/scripts/cbuildbot.py
index ca0ea0f..c570c70 100644
--- a/scripts/cbuildbot.py
+++ b/scripts/cbuildbot.py
@@ -495,10 +495,7 @@
 
     # Prepare stages to run in background.  If child_configs exist then
     # run each of those here, otherwise use default config.
-    builder_runs = [self._run]
-    if self._run.config.child_configs:
-      builder_runs = [cbuildbot_run.ChildBuilderRun(self._run, ix)
-                      for ix in range(len(self._run.config.child_configs))]
+    builder_runs = self._run.GetUngroupedBuilderRuns()
 
     tasks = []
     for builder_run in builder_runs: