fix(runner): classify failed cd stale jobs readback
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 33s
CD Pipeline / build-and-deploy (push) Successful in 4m15s
CD Pipeline / post-deploy-checks (push) Successful in 1m36s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 33s
CD Pipeline / build-and-deploy (push) Successful in 4m15s
CD Pipeline / post-deploy-checks (push) Successful in 1m36s
This commit is contained in:
@@ -415,6 +415,14 @@ def build_readback(
|
|||||||
)
|
)
|
||||||
effective_tests_log_classifier["host_pressure_waiting"] = False
|
effective_tests_log_classifier["host_pressure_waiting"] = False
|
||||||
effective_tests_log_classifier["host_pressure_blocked_or_waiting"] = False
|
effective_tests_log_classifier["host_pressure_blocked_or_waiting"] = False
|
||||||
|
effective_cd_failure_classifier = build_log_classifier["failure_classifier"]
|
||||||
|
if (
|
||||||
|
not effective_cd_failure_classifier
|
||||||
|
and latest_cd_status in {"Blocked", "Canceled", "Failure"}
|
||||||
|
and cd_jobs_stale_or_mismatched
|
||||||
|
and cd_jobs_payload_classifier
|
||||||
|
):
|
||||||
|
effective_cd_failure_classifier = cd_jobs_payload_classifier
|
||||||
latest_cd_no_matching_runner_label = (
|
latest_cd_no_matching_runner_label = (
|
||||||
latest_cd_run.get("no_matching_runner_label", "")
|
latest_cd_run.get("no_matching_runner_label", "")
|
||||||
or workflow_no_matching_labels.get("cd.yaml", "")
|
or workflow_no_matching_labels.get("cd.yaml", "")
|
||||||
@@ -617,9 +625,7 @@ def build_readback(
|
|||||||
controlled_profile_no_matching_runner_labels
|
controlled_profile_no_matching_runner_labels
|
||||||
),
|
),
|
||||||
"latest_visible_cd_build_log_http_status": latest_cd_build_log_http_status,
|
"latest_visible_cd_build_log_http_status": latest_cd_build_log_http_status,
|
||||||
"latest_visible_cd_failure_classifier": build_log_classifier[
|
"latest_visible_cd_failure_classifier": effective_cd_failure_classifier,
|
||||||
"failure_classifier"
|
|
||||||
],
|
|
||||||
"latest_visible_cd_failure_status_code": build_log_classifier[
|
"latest_visible_cd_failure_status_code": build_log_classifier[
|
||||||
"failure_status_code"
|
"failure_status_code"
|
||||||
],
|
],
|
||||||
@@ -937,9 +943,7 @@ def build_readback(
|
|||||||
"controlled_profile_no_matching_runner_labels": (
|
"controlled_profile_no_matching_runner_labels": (
|
||||||
controlled_profile_no_matching_runner_labels
|
controlled_profile_no_matching_runner_labels
|
||||||
),
|
),
|
||||||
"current_main_cd_failure_classifier": build_log_classifier[
|
"current_main_cd_failure_classifier": effective_cd_failure_classifier,
|
||||||
"failure_classifier"
|
|
||||||
],
|
|
||||||
"current_main_cd_inflight_classifier": build_log_classifier[
|
"current_main_cd_inflight_classifier": build_log_classifier[
|
||||||
"inflight_classifier"
|
"inflight_classifier"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1219,6 +1219,37 @@ def test_stale_waiting_host_pressure_log_does_not_hide_failed_cd_jobs_payload()
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_failed_cd_with_stale_jobs_payload_gets_failure_classifier() -> None:
|
||||||
|
module = _load_module()
|
||||||
|
payload = module.build_readback(
|
||||||
|
actions_html=_actions_html_failed_cd_run(),
|
||||||
|
actions_list_http_status=401,
|
||||||
|
actions_list_payload={"message": "token is required"},
|
||||||
|
cd_jobs_http_status=200,
|
||||||
|
cd_jobs_payload={
|
||||||
|
"jobs": [
|
||||||
|
{
|
||||||
|
"run_id": 4043,
|
||||||
|
"name": "tests",
|
||||||
|
"head_sha": "9c4e754d3369fa2de7606e7092712cf6d85e18e2",
|
||||||
|
"conclusion": "success",
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total_count": 1,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
assert payload["status"] == "cd_jobs_stale_or_mismatched"
|
||||||
|
assert payload["readback"]["latest_visible_cd_run_status"] == "Failure"
|
||||||
|
assert payload["readback"]["cd_run_jobs_head_sha_mismatch"] is True
|
||||||
|
assert payload["readback"]["latest_visible_cd_failure_classifier"] == (
|
||||||
|
"cd_jobs_api_head_sha_mismatch_for_visible_cd_run"
|
||||||
|
)
|
||||||
|
assert payload["rollups"]["current_main_cd_failure_classifier"] == (
|
||||||
|
"cd_jobs_api_head_sha_mismatch_for_visible_cd_run"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_interrupted_host_pressure_reports_postgres_recovery_cpu() -> None:
|
def test_interrupted_host_pressure_reports_postgres_recovery_cpu() -> None:
|
||||||
module = _load_module()
|
module = _load_module()
|
||||||
payload = module.build_readback(
|
payload = module.build_readback(
|
||||||
|
|||||||
Reference in New Issue
Block a user