| Index: tools/push-to-trunk/auto_roll.py
|
| diff --git a/tools/push-to-trunk/auto_roll.py b/tools/push-to-trunk/auto_roll.py
|
| index 607ca0897abf7db55951f117279f90a1ef03dcc1..e6cbed525f43d0df3e215ab4092c834f42927772 100755
|
| --- a/tools/push-to-trunk/auto_roll.py
|
| +++ b/tools/push-to-trunk/auto_roll.py
|
| @@ -12,8 +12,11 @@ import urllib
|
| from common_includes import *
|
| import chromium_roll
|
|
|
| +CLUSTERFUZZ_API_KEY_FILE = "CLUSTERFUZZ_API_KEY_FILE"
|
| +
|
| CONFIG = {
|
| PERSISTFILE_BASENAME: "/tmp/v8-auto-roll-tempfile",
|
| + CLUSTERFUZZ_API_KEY_FILE: ".cf_api_key",
|
| }
|
|
|
| CR_DEPS_URL = 'http://src.chromium.org/svn/trunk/src/DEPS'
|
| @@ -65,6 +68,24 @@ class DetectLastRoll(Step):
|
| return True
|
|
|
|
|
| +class CheckClusterFuzz(Step):
|
| + MESSAGE = "Check ClusterFuzz api for new problems."
|
| +
|
| + def RunStep(self):
|
| + if not os.path.exists(self.Config(CLUSTERFUZZ_API_KEY_FILE)):
|
| + print "Skipping ClusterFuzz check. No api key file found."
|
| + return False
|
| + api_key = FileToText(self.Config(CLUSTERFUZZ_API_KEY_FILE))
|
| + # Check for open, reproducible issues that have no associated bug.
|
| + result = self._side_effect_handler.ReadClusterFuzzAPI(
|
| + api_key, job_type="linux_asan_d8_dbg", reproducible="True",
|
| + open="True", bug_information="",
|
| + revision_greater_or_equal=self["last_push"])
|
| + if result:
|
| + print "Stop due to pending ClusterFuzz issues."
|
| + return True
|
| +
|
| +
|
| class RollChromium(Step):
|
| MESSAGE = "Roll V8 into Chromium."
|
|
|
| @@ -75,6 +96,7 @@ class RollChromium(Step):
|
| "--reviewer", self._options.reviewer,
|
| "--chromium", self._options.chromium,
|
| "--force",
|
| + "--use-commit-queue",
|
| ]
|
| if self._options.sheriff:
|
| args.extend([
|
| @@ -108,6 +130,7 @@ class AutoRoll(ScriptsBase):
|
| CheckActiveRoll,
|
| DetectLastPush,
|
| DetectLastRoll,
|
| + CheckClusterFuzz,
|
| RollChromium,
|
| ]
|
|
|
|
|