diff --git a/recipes/README.recipes.md b/recipes/README.recipes.md index 11e48e76a..7bc4c97c1 100644 --- a/recipes/README.recipes.md +++ b/recipes/README.recipes.md @@ -820,54 +820,66 @@ Returns: #### **class [TryserverApi](/recipes/recipe_modules/tryserver/api.py#27)([RecipeApi][recipe_engine/wkt/RecipeApi]):** -  **@property**
— **def [constants](/recipes/recipe_modules/tryserver/api.py#49)(self):** +  **@property**
— **def [constants](/recipes/recipe_modules/tryserver/api.py#51)(self):** -  **@property**
— **def [gerrit\_change](/recipes/recipe_modules/tryserver/api.py#54)(self):** +  **@property**
— **def [gerrit\_change](/recipes/recipe_modules/tryserver/api.py#56)(self):** Returns current gerrit change, if there is exactly one. Returns a self.m.buildbucket.common_pb2.GerritChange or None. -  **@property**
— **def [gerrit\_change\_fetch\_ref](/recipes/recipe_modules/tryserver/api.py#131)(self):** +  **@property**
— **def [gerrit\_change\_fetch\_ref](/recipes/recipe_modules/tryserver/api.py#149)(self):** Returns gerrit patch ref, e.g. "refs/heads/45/12345/6, or None. Populated iff gerrit_change is populated. -  **@property**
— **def [gerrit\_change\_number](/recipes/recipe_modules/tryserver/api.py#149)(self):** +  **@property**
— **def [gerrit\_change\_number](/recipes/recipe_modules/tryserver/api.py#167)(self):** Returns gerrit change patchset, e.g. 12345 for a patch ref of "refs/heads/45/12345/6". Populated iff gerrit_change is populated. Returns None if not populated. -  **@property**
— **def [gerrit\_change\_owner](/recipes/recipe_modules/tryserver/api.py#70)(self):** +  **@property**
— **def [gerrit\_change\_owner](/recipes/recipe_modules/tryserver/api.py#88)(self):** Returns owner of the current Gerrit CL. Populated iff gerrit_change is populated. Is a dictionary with keys like "name". -  **@property**
— **def [gerrit\_change\_repo\_url](/recipes/recipe_modules/tryserver/api.py#62)(self):** +  **@property**
— **def [gerrit\_change\_repo\_host](/recipes/recipe_modules/tryserver/api.py#72)(self):** + +Returns the host of the gitiles repo of the current Gerrit CL. + +Populated iff gerrit_change is populated. + +  **@property**
— **def [gerrit\_change\_repo\_project](/recipes/recipe_modules/tryserver/api.py#80)(self):** + +Returns the project of the gitiles repo of the current Gerrit CL. + +Populated iff gerrit_change is populated. + +  **@property**
— **def [gerrit\_change\_repo\_url](/recipes/recipe_modules/tryserver/api.py#64)(self):** Returns canonical URL of the gitiles repo of the current Gerrit CL. Populated iff gerrit_change is populated. -  **@property**
— **def [gerrit\_change\_target\_ref](/recipes/recipe_modules/tryserver/api.py#140)(self):** +  **@property**
— **def [gerrit\_change\_target\_ref](/recipes/recipe_modules/tryserver/api.py#158)(self):** Returns gerrit change destination ref, e.g. "refs/heads/master". Populated iff gerrit_change is populated. -  **@property**
— **def [gerrit\_patchset\_number](/recipes/recipe_modules/tryserver/api.py#161)(self):** +  **@property**
— **def [gerrit\_patchset\_number](/recipes/recipe_modules/tryserver/api.py#179)(self):** Returns gerrit change patchset, e.g. 6 for a patch ref of "refs/heads/45/12345/6". Populated iff gerrit_change is populated Returns None if not populated.. -— **def [get\_files\_affected\_by\_patch](/recipes/recipe_modules/tryserver/api.py#194)(self, patch_root, report_files_via_property=None, \*\*kwargs):** +— **def [get\_files\_affected\_by\_patch](/recipes/recipe_modules/tryserver/api.py#212)(self, patch_root, report_files_via_property=None, \*\*kwargs):** Returns list of paths to files affected by the patch. @@ -879,43 +891,43 @@ Args: Returned paths will be relative to to patch_root. -— **def [get\_footer](/recipes/recipe_modules/tryserver/api.py#334)(self, tag, patch_text=None):** +— **def [get\_footer](/recipes/recipe_modules/tryserver/api.py#352)(self, tag, patch_text=None):** Gets a specific tag from a CL description -— **def [get\_footers](/recipes/recipe_modules/tryserver/api.py#298)(self, patch_text=None):** +— **def [get\_footers](/recipes/recipe_modules/tryserver/api.py#316)(self, patch_text=None):** Retrieves footers from the patch description. footers are machine readable tags embedded in commit messages. See git-footers documentation for more information. -— **def [initialize](/recipes/recipe_modules/tryserver/api.py#40)(self):** +— **def [initialize](/recipes/recipe_modules/tryserver/api.py#42)(self):** -  **@property**
— **def [is\_gerrit\_issue](/recipes/recipe_modules/tryserver/api.py#178)(self):** +  **@property**
— **def [is\_gerrit\_issue](/recipes/recipe_modules/tryserver/api.py#196)(self):** Returns true iff the properties exist to match a Gerrit issue. -  **@property**
— **def [is\_patch\_in\_git](/recipes/recipe_modules/tryserver/api.py#188)(self):** +  **@property**
— **def [is\_patch\_in\_git](/recipes/recipe_modules/tryserver/api.py#206)(self):** -  **@property**
— **def [is\_tryserver](/recipes/recipe_modules/tryserver/api.py#173)(self):** +  **@property**
— **def [is\_tryserver](/recipes/recipe_modules/tryserver/api.py#191)(self):** Returns true iff we have a change to check out. -— **def [normalize\_footer\_name](/recipes/recipe_modules/tryserver/api.py#342)(self, footer):** +— **def [normalize\_footer\_name](/recipes/recipe_modules/tryserver/api.py#360)(self, footer):** -— **def [set\_change](/recipes/recipe_modules/tryserver/api.py#345)(self, change):** +— **def [set\_change](/recipes/recipe_modules/tryserver/api.py#363)(self, change):** Set the gerrit change for this module. Args: * change: a self.m.buildbucket.common_pb2.GerritChange. -— **def [set\_compile\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#259)(self):** +— **def [set\_compile\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#277)(self):** Mark the tryjob result as a compile failure. -— **def [set\_invalid\_test\_results\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#271)(self):** +— **def [set\_invalid\_test\_results\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#289)(self):** Mark the tryjob result as having invalid test results. @@ -923,39 +935,39 @@ This means we run some tests, but the results were not valid (e.g. no list of specific test cases that failed, or too many tests failing, etc). -— **def [set\_patch\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#255)(self):** +— **def [set\_patch\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#273)(self):** Mark the tryjob result as failure to apply the patch. -— **def [set\_subproject\_tag](/recipes/recipe_modules/tryserver/api.py#233)(self, subproject_tag):** +— **def [set\_subproject\_tag](/recipes/recipe_modules/tryserver/api.py#251)(self, subproject_tag):** Adds a subproject tag to the build. This can be used to distinguish between builds that execute different steps depending on what was patched, e.g. blink vs. pure chromium patches. -— **def [set\_test\_expired\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#288)(self):** +— **def [set\_test\_expired\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#306)(self):** Mark the tryjob result as a test expiration. This means a test task expired and was never scheduled, most likely due to lack of capacity. -— **def [set\_test\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#263)(self):** +— **def [set\_test\_failure\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#281)(self):** Mark the tryjob result as a test failure. This means we started running actual tests (not prerequisite steps like checkout or compile), and some of these tests have failed. -— **def [set\_test\_timeout\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#280)(self):** +— **def [set\_test\_timeout\_tryjob\_result](/recipes/recipe_modules/tryserver/api.py#298)(self):** Mark the tryjob result as a test timeout. This means tests were scheduled but didn't finish executing within the timeout. -  **@property**
— **def [valid\_footers](/recipes/recipe_modules/tryserver/api.py#45)(self):** +  **@property**
— **def [valid\_footers](/recipes/recipe_modules/tryserver/api.py#47)(self):** ### *recipe_modules* / [windows\_sdk](/recipes/recipe_modules/windows_sdk) [DEPS](/recipes/recipe_modules/windows_sdk/__init__.py#5): [recipe\_engine/cipd][recipe_engine/recipe_modules/cipd], [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/step][recipe_engine/recipe_modules/step] diff --git a/recipes/recipe_modules/tryserver/api.py b/recipes/recipe_modules/tryserver/api.py index 2d60885ec..c0d47ff3e 100644 --- a/recipes/recipe_modules/tryserver/api.py +++ b/recipes/recipe_modules/tryserver/api.py @@ -29,6 +29,8 @@ class TryserverApi(recipe_api.RecipeApi): super(TryserverApi, self).__init__(*args, **kwargs) self._gerrit_change = None # self.m.buildbucket.common_pb2.GerritChange self._gerrit_change_repo_url = None + self._gerrit_change_repo_host = None + self._gerrit_change_repo_project = None self._gerrit_info_initialized = False self._gerrit_change_target_ref = None @@ -67,6 +69,22 @@ class TryserverApi(recipe_api.RecipeApi): """ return self._gerrit_change_repo_url + @property + def gerrit_change_repo_host(self): + """Returns the host of the gitiles repo of the current Gerrit CL. + + Populated iff gerrit_change is populated. + """ + return self._gerrit_change_repo_host + + @property + def gerrit_change_repo_project(self): + """Returns the project of the gitiles repo of the current Gerrit CL. + + Populated iff gerrit_change is populated. + """ + return self._gerrit_change_repo_project + @property def gerrit_change_owner(self): """Returns owner of the current Gerrit CL. @@ -355,3 +373,5 @@ class TryserverApi(recipe_api.RecipeApi): if host.endswith(gs_suffix): host = '%s.googlesource.com' % host[:-len(gs_suffix)] self._gerrit_change_repo_url = 'https://%s/%s' % (host, change.project) + self._gerrit_change_repo_host = host + self._gerrit_change_repo_project = change.project diff --git a/recipes/recipe_modules/tryserver/examples/full.py b/recipes/recipe_modules/tryserver/examples/full.py index 809c250ba..35c6de3e7 100644 --- a/recipes/recipe_modules/tryserver/examples/full.py +++ b/recipes/recipe_modules/tryserver/examples/full.py @@ -31,6 +31,10 @@ def RunSteps(api): if api.tryserver.gerrit_change: assert (api.tryserver.gerrit_change_repo_url == 'https://chromium.googlesource.com/chromium/src') + assert (api.tryserver.gerrit_change_repo_host == + 'chromium.googlesource.com') + assert (api.tryserver.gerrit_change_repo_project == + 'chromium/src') assert api.tryserver.gerrit_change_fetch_ref == 'refs/changes/27/91827/1' expected_target_ref = api.properties.get( 'expected_target_ref', 'refs/heads/master')