Skip to content

Commit e3fc6d6

Browse files
committed
Misc: Allow no internal CI
1 parent f2def84 commit e3fc6d6

File tree

1 file changed

+32
-31
lines changed

1 file changed

+32
-31
lines changed

misc/scripts/accept-expected-changes-from-ci.py

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -274,38 +274,39 @@ def main(pr_number: int):
274274
for lang_test_failure in lang_test_failures:
275275
job_failure_urls.add(lang_test_failure.target_url)
276276

277-
assert len(job_failure_urls) == 1, f"Multiple job failure URLs: {job_failure_urls}"
278-
job_failure_url = job_failure_urls.pop()
279-
280-
# fixup URL. On the status, the target URL is the run, and it's really hard to
281-
# change this to link to the full `/runs/<run_id>/jobs/<numeric_job_id>` URL, since
282-
# the `<numeric_job_id>` is not available in a context: https://github.com/community/community/discussions/40291
283-
m = re.fullmatch(r"^https://github\.com/([^/]+/[^/]+)/actions/runs/(\d+)$", job_failure_url)
284-
nwo = m.group(1)
285-
run_id = m.group(2)
286-
jobs_url = f"https://api.github.com/repos/{nwo}/actions/runs/{run_id}/jobs"
287-
LOGGER.info(f"Fixing up target url from looking at {jobs_url}")
288-
jobs = json.loads(subprocess.check_output(["gh", "api", "--paginate", jobs_url]).decode("utf-8"))
289-
for lang_test_failure in lang_test_failures:
290-
workflow_translation = {
291-
"codeql-coding-standards Unit Tests Linux": "Start codeql-coding-standards"
292-
}
293-
expected_workflow_name = workflow_translation.get(lang_test_failure.context, lang_test_failure.context)
294-
295-
for job in jobs["jobs"]:
296-
api_name: str = job["name"]
297-
if " / " not in api_name:
298-
continue
277+
if job_failure_urls:
278+
assert len(job_failure_urls) == 1, f"Multiple job failure URLs: {job_failure_urls}"
279+
job_failure_url = job_failure_urls.pop()
280+
281+
# fixup URL. On the status, the target URL is the run, and it's really hard to
282+
# change this to link to the full `/runs/<run_id>/jobs/<numeric_job_id>` URL, since
283+
# the `<numeric_job_id>` is not available in a context: https://github.com/community/community/discussions/40291
284+
m = re.fullmatch(r"^https://github\.com/([^/]+/[^/]+)/actions/runs/(\d+)$", job_failure_url)
285+
nwo = m.group(1)
286+
run_id = m.group(2)
287+
jobs_url = f"https://api.github.com/repos/{nwo}/actions/runs/{run_id}/jobs"
288+
LOGGER.info(f"Fixing up target url from looking at {jobs_url}")
289+
jobs = json.loads(subprocess.check_output(["gh", "api", "--paginate", jobs_url]).decode("utf-8"))
290+
for lang_test_failure in lang_test_failures:
291+
workflow_translation = {
292+
"codeql-coding-standards Unit Tests Linux": "Start codeql-coding-standards"
293+
}
294+
expected_workflow_name = workflow_translation.get(lang_test_failure.context, lang_test_failure.context)
299295

300-
workflow_name, job_name = api_name.split(" / ")
301-
# The job names we're looking for looks like "Python2 Language Tests / Python2 Language Tests" or "Java Language Tests / Java Language Tests Linux"
302-
# for "Java Integration Tests Linux / Java Integration tests Linux" we need to ignore case :|
303-
if workflow_name == expected_workflow_name and job_name.lower().startswith(lang_test_failure.context.lower()):
304-
lang_test_failure.job_id = job["id"]
305-
break
306-
else:
307-
LOGGER.error(f"Could not find job for {lang_test_failure.context!r}")
308-
sys.exit(1)
296+
for job in jobs["jobs"]:
297+
api_name: str = job["name"]
298+
if " / " not in api_name:
299+
continue
300+
301+
workflow_name, job_name = api_name.split(" / ")
302+
# The job names we're looking for looks like "Python2 Language Tests / Python2 Language Tests" or "Java Language Tests / Java Language Tests Linux"
303+
# for "Java Integration Tests Linux / Java Integration tests Linux" we need to ignore case :|
304+
if workflow_name == expected_workflow_name and job_name.lower().startswith(lang_test_failure.context.lower()):
305+
lang_test_failure.job_id = job["id"]
306+
break
307+
else:
308+
LOGGER.error(f"Could not find job for {lang_test_failure.context!r}")
309+
sys.exit(1)
309310

310311
# Ruby/Swift/C#/Go use github actions, and not internal CI. These are not reported
311312
# from the /statuses API, but from the /check-suites API

0 commit comments

Comments
 (0)