Skip to content

Commit 67afad6

Browse files
author
Bastien Abadie
committed
bot: Check remote hgmo changesets before loading artfioacts on try
1 parent a0a06dc commit 67afad6

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

bot/code_coverage_bot/hooks/repo.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,31 +63,26 @@ def check_javascript_files(self):
6363
f"{missing_files} are present in coverage reports, but missing from the repository"
6464
)
6565

66-
def upload_phabricator(self, report, use_local_clone=True):
67-
phabricatorUploader = PhabricatorUploader(self.repo_dir, self.revision)
68-
69-
# Build HGMO config according to this repo's configuration
66+
def get_hgmo_changesets(self, use_local_clone=True):
67+
"""
68+
Build HGMO changesets according to this repo's configuration
69+
"""
7070
hgmo_config = {}
7171
if use_local_clone:
7272
hgmo_config["repo_dir"] = self.repo_dir
7373
else:
7474
hgmo_config["server_address"] = self.repository
7575

7676
with hgmo.HGMO(**hgmo_config) as hgmo_server:
77-
changesets = hgmo_server.get_automation_relevance_changesets(self.revision)
78-
79-
if not any(
80-
parse_revision_id(changeset["desc"]) is not None for changeset in changesets
81-
):
82-
logger.info(
83-
"None of the commits in the try push are linked to a Phabricator revision"
84-
)
85-
return
77+
return hgmo_server.get_automation_relevance_changesets(self.revision)
8678

79+
def upload_phabricator(self, report, changesets):
80+
"""
81+
Helper to upload coverage report on Phabricator
82+
"""
83+
phabricatorUploader = PhabricatorUploader(self.repo_dir, self.revision)
8784
logger.info("Upload changeset coverage data to Phabricator")
88-
coverage = phabricatorUploader.upload(report, changesets)
89-
90-
return changesets, coverage
85+
return phabricatorUploader.upload(report, changesets)
9186

9287

9388
class MozillaCentralHook(RepositoryHook):
@@ -140,7 +135,8 @@ def run(self):
140135
logger.info("Uploaded all covdir reports", nb=len(reports))
141136

142137
# Upload coverage on phabricator
143-
changesets, coverage = self.upload_phabricator(report)
138+
changesets = self.get_hgmo_changesets()
139+
coverage = self.upload_phabricator(report, changesets)
144140

145141
# Send an email on low coverage
146142
notify_email(self.revision, changesets, coverage)
@@ -164,6 +160,16 @@ def __init__(self, *args, **kwargs):
164160
)
165161

166162
def run(self):
163+
changesets = self.get_hgmo_changesets(use_local_clone=False)
164+
165+
if not any(
166+
parse_revision_id(changeset["desc"]) is not None for changeset in changesets
167+
):
168+
logger.info(
169+
"None of the commits in the try push are linked to a Phabricator revision"
170+
)
171+
return
172+
167173
self.retrieve_source_and_artifacts()
168174

169175
reports = self.build_reports(only=[("all", "all")])
@@ -175,7 +181,7 @@ def run(self):
175181
report = json.load(open(full_path))
176182

177183
# Upload coverage on phabricator
178-
self.upload_phabricator(report, use_local_clone=False)
184+
self.upload_phabricator(report, changesets)
179185

180186

181187
def main():

0 commit comments

Comments
 (0)