From 58df3a609410c2299c8df57b439731271da04da7 Mon Sep 17 00:00:00 2001 From: Jeny Sadadia Date: Tue, 12 Aug 2025 18:11:31 +0530 Subject: [PATCH 1/2] Enable build job retry Enable job retry service to trigger retry for failed/incomplete build jobs. Handled job filter and state for event data differently in case of build retry. Signed-off-by: Jeny Sadadia --- src/job_retry.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/job_retry.py b/src/job_retry.py index ed08c7356..0d917ca52 100755 --- a/src/job_retry.py +++ b/src/job_retry.py @@ -21,9 +21,7 @@ def _setup(self, args): return self._api_helper.subscribe_filters({ "state": "done", "result": ("fail", "incomplete"), - "kind": "job" - # ToDo: Retry for build jobs - # "kind": ("kbuild", "job") + "kind": ("kbuild", "job"), }) def _stop(self, sub_id): @@ -63,18 +61,23 @@ def _run(self, sub_id): continue parent_kind = None - if node.get('kind') == 'job': - parent_kind = 'kbuild' - # ToDo: retry build jobs - # if node.get("kind") == "kbuild": - # parent_kind = "checkout" + if node.get("kind") == "job": + parent_kind = "kbuild" + if node.get("kind") == "kbuild": + parent_kind = "checkout" if parent_kind: event_data = self._find_parent_kind(node, self._api_helper, parent_kind) if not event_data: self.log.error(f"Not able to find parent node for {node['id']}") continue - event_data["jobfilter"] = [node["name"]] - event_data["platform_filter"] = [node["data"].get("platform")] + if node["kind"] == "kbuild": + event_data["jobfilter"] = [f'{node["name"]}+'] + else: + event_data["jobfilter"] = [node["name"]] + # Change event data state to available to trigger jobs based on scheduler configs + event_data["state"] = "available" + if node["kind"] == "job": + event_data["platform_filter"] = [node["data"].get("platform")] event_data["retry_counter"] = retry_counter + 1 event_data["debug"] = {"retry_by": str(node["id"])} self.log.debug(f"{node['id']}:Event data retry_counter: {event_data['retry_counter']}") From 149e187de47cd53aff12ccdf349ab90cab508a53 Mon Sep 17 00:00:00 2001 From: Jeny Sadadia Date: Thu, 14 Aug 2025 12:22:04 +0530 Subject: [PATCH 2/2] Retry only incomplete jobs Signed-off-by: Jeny Sadadia --- src/job_retry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/job_retry.py b/src/job_retry.py index 0d917ca52..0348fd078 100755 --- a/src/job_retry.py +++ b/src/job_retry.py @@ -20,7 +20,7 @@ def __init__(self, configs, args): def _setup(self, args): return self._api_helper.subscribe_filters({ "state": "done", - "result": ("fail", "incomplete"), + "result": "incomplete", "kind": ("kbuild", "job"), })