diff --git a/recipes/README.recipes.md b/recipes/README.recipes.md index e0c583e61..0e9f747da 100644 --- a/recipes/README.recipes.md +++ b/recipes/README.recipes.md @@ -757,13 +757,13 @@ Raises: [DEPS](/recipes/recipe_modules/presubmit/__init__.py#11): [bot\_update](#recipe_modules-bot_update), [depot\_tools](#recipe_modules-depot_tools), [gclient](#recipe_modules-gclient), [git](#recipe_modules-git), [tryserver](#recipe_modules-tryserver), [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/cq][recipe_engine/recipe_modules/cq], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step] -#### **class [PresubmitApi](/recipes/recipe_modules/presubmit/api.py#11)([RecipeApi][recipe_engine/wkt/RecipeApi]):** +#### **class [PresubmitApi](/recipes/recipe_modules/presubmit/api.py#16)([RecipeApi][recipe_engine/wkt/RecipeApi]):** -— **def [\_\_call\_\_](/recipes/recipe_modules/presubmit/api.py#26)(self, \*args, \*\*kwargs):** +— **def [\_\_call\_\_](/recipes/recipe_modules/presubmit/api.py#28)(self, \*args, \*\*kwargs):** Return a presubmit step. -— **def [execute](/recipes/recipe_modules/presubmit/api.py#75)(self, bot_update_step):** +— **def [execute](/recipes/recipe_modules/presubmit/api.py#77)(self, bot_update_step):** Runs presubmit and sets summary markdown if applicable. @@ -772,7 +772,7 @@ Args: Returns: a RawResult object, suitable for being returned from RunSteps. -— **def [prepare](/recipes/recipe_modules/presubmit/api.py#39)(self):** +— **def [prepare](/recipes/recipe_modules/presubmit/api.py#41)(self):** Set up a presubmit run. @@ -787,7 +787,7 @@ This expects the gclient configuration to already have been set. Returns: the StepResult from the bot_update step. -  **@property**
— **def [presubmit\_support\_path](/recipes/recipe_modules/presubmit/api.py#22)(self):** +  **@property**
— **def [presubmit\_support\_path](/recipes/recipe_modules/presubmit/api.py#24)(self):** ### *recipe_modules* / [tryserver](/recipes/recipe_modules/tryserver) [DEPS](/recipes/recipe_modules/tryserver/__init__.py#5): [gerrit](#recipe_modules-gerrit), [git](#recipe_modules-git), [git\_cl](#recipe_modules-git_cl), [recipe\_engine/buildbucket][recipe_engine/recipe_modules/buildbucket], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step] diff --git a/recipes/recipe_modules/presubmit/api.py b/recipes/recipe_modules/presubmit/api.py index 5a8629e90..2a0b7dea6 100644 --- a/recipes/recipe_modules/presubmit/api.py +++ b/recipes/recipe_modules/presubmit/api.py @@ -7,6 +7,11 @@ from recipe_engine import recipe_api from PB.recipe_engine import result as result_pb2 from PB.go.chromium.org.luci.buildbucket.proto import common as common_pb2 +# 8 minutes seems like a reasonable upper bound on presubmit timings. +# According to event mon data we have, it seems like anything longer than +# this is a bug, and should just instant fail. +_DEFAULT_TIMEOUT_S = 480 + class PresubmitApi(recipe_api.RecipeApi): @@ -14,10 +19,7 @@ class PresubmitApi(recipe_api.RecipeApi): super(PresubmitApi, self).__init__(**kwargs) self._runhooks = properties.runhooks - # 8 minutes seems like a reasonable upper bound on presubmit timings. - # According to event mon data we have, it seems like anything longer than - # this is a bug, and should just instant fail. - self._timeout_s = properties.timeout_s + self._timeout_s = properties.timeout_s or _DEFAULT_TIMEOUT_S @property def presubmit_support_path(self): diff --git a/recipes/recipe_modules/presubmit/properties.proto b/recipes/recipe_modules/presubmit/properties.proto index 295b2b1b6..2267a0d2e 100644 --- a/recipes/recipe_modules/presubmit/properties.proto +++ b/recipes/recipe_modules/presubmit/properties.proto @@ -9,5 +9,6 @@ message InputProperties { // Whether gclient hooks should be run when setting up the checkout. bool runhooks = 1; // Timeout for presubmit execution, in seconds. + // Defaults to 480s (8 minutes). int32 timeout_s = 2; }