cbuildbot: Run Report stage even if there was no Archive stage in run.
This change allows for the functional elements of the Report stage to
run even if the builder run had no Archive stage in it. This includes
metadata upload and the run streak update.
BUG=chromium:331594
TEST=`buildbot/run_tests`
TEST=`cbuildbot --remote` on targets:
x86-generic-full daisy-full
TEST=`cbuildbot --remote --buildbot --debug` on targets:
master-paladin x86-mario-paladin link-tot-paladin daisy-chromium-pfq
lumpy-release
Change-Id: Id68c4b9e097af15d0846bcb7cf2fca9e34a1d598
Reviewed-on: https://chromium-review.googlesource.com/184186
Reviewed-by: Matt Tennant <mtennant@chromium.org>
Tested-by: Matt Tennant <mtennant@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
diff --git a/scripts/cbuildbot.py b/scripts/cbuildbot.py
index 8c598a2..0e82d9e 100644
--- a/scripts/cbuildbot.py
+++ b/scripts/cbuildbot.py
@@ -200,6 +200,8 @@
finally:
self._SetReleaseTag()
+ # Set up local archive directory for this run, now that we have a version.
+ self._run.GetArchive().SetupArchivePath()
def GetSyncInstance(self):
"""Returns an instance of a SyncStage that should be run.
@@ -352,8 +354,7 @@
if print_report:
results_lib.WriteCheckpoint(self._run.options.buildroot)
completion_instance = self.GetCompletionInstance()
- self._RunStage(stages.ReportStage, self.archive_stages, sync_instance,
- completion_instance)
+ self._RunStage(stages.ReportStage, sync_instance, completion_instance)
success = results_lib.Results.BuildSucceededSoFar()
if exception_thrown and success:
success = False
@@ -419,6 +420,10 @@
compilecheck: Boolean. If True, run only the compile steps.
"""
config = builder_run.config
+
+ # TODO(mtennant): This is the last usage of self.archive_stages. We can
+ # kill it once we migrate its uses to BuilderRun so that none of the
+ # stages below need it as an argument.
archive_stage = self.archive_stages[BoardConfig(board, config.name)]
if config.pgo_generate:
self._RunParallelStages([archive_stage])