Make canaries use the true master-slave model
This CL changes the sync/completion stages of the canary master to
ManifestVersionedSyncStage and MasterSlaveCompletionStage. This
enables the master to wait and collect slave statuses. It also turns
on "important=True" for canary group builders and non-experimental,
individual canary builders (e.g. link-release) so that the master
would wait for them.
Some other code cleanup included:
- Rename MasterSlaveSyncStage to MasterSlaveLKGMSyncStage because it
uses the lkgm manager.
- Move AbortCQHWTest from MasterSlaveSyncCompletionStage to
CommmitQueueCompletionStage because no other compeltion stage should
be able to abort HWTest on CQ.
BUG=chromium:385267
CQ-DEPEND=CL:209742
TEST=`cbuildbot --remote --debug --buildbot master-release`
Change-Id: I6736cd40854c6ce9064bba3ce87e88e20c0ab7ac
Reviewed-on: https://chromium-review.googlesource.com/209630
Reviewed-by: Yu-Ju Hong <yjhong@chromium.org>
Commit-Queue: Yu-Ju Hong <yjhong@chromium.org>
Tested-by: Yu-Ju Hong <yjhong@chromium.org>
diff --git a/scripts/cbuildbot.py b/scripts/cbuildbot.py
index cfd5395..1d9e9a8 100644
--- a/scripts/cbuildbot.py
+++ b/scripts/cbuildbot.py
@@ -736,12 +736,18 @@
self.patch_pool.gerrit_patches = []
elif cbuildbot_config.IsCQType(self._run.config.build_type):
if self._run.config.do_not_apply_cq_patches:
- sync_stage = self._GetStageInstance(sync_stages.MasterSlaveSyncStage)
+ sync_stage = self._GetStageInstance(
+ sync_stages.MasterSlaveLKGMSyncStage)
else:
sync_stage = self._GetStageInstance(sync_stages.CommitQueueSyncStage)
self.completion_stage_class = completion_stages.CommitQueueCompletionStage
elif cbuildbot_config.IsPFQType(self._run.config.build_type):
- sync_stage = self._GetStageInstance(sync_stages.MasterSlaveSyncStage)
+ sync_stage = self._GetStageInstance(sync_stages.MasterSlaveLKGMSyncStage)
+ self.completion_stage_class = (
+ completion_stages.MasterSlaveSyncCompletionStage)
+ elif cbuildbot_config.IsCanaryType(self._run.config.build_type):
+ sync_stage = self._GetStageInstance(
+ sync_stages.ManifestVersionedSyncStage)
self.completion_stage_class = (
completion_stages.MasterSlaveSyncCompletionStage)
else: