bin/ci: crnm: Fix pipeline monitoring skipping

We stop monitoring pipeline changes when we find out that the target job
is already running, or is in a complete state.

But when we `--force-manual` we should consider that the job is not
complete and we should iterate a little more in the monitor pipeline
stage until it gets ready for trace following.

Closes: #11552

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30361>
This commit is contained in:
Guilherme Gallo
2024-07-26 12:17:29 -03:00
committed by Marge Bot
parent 3975366a88
commit ff18d1ec23

View File

@@ -124,6 +124,11 @@ def monitor_pipeline(
execution_times = defaultdict(lambda: defaultdict(tuple)) execution_times = defaultdict(lambda: defaultdict(tuple))
target_id: int = -1 target_id: int = -1
name_field_pad: int = len(max(dependencies, key=len))+2 name_field_pad: int = len(max(dependencies, key=len))+2
# In a running pipeline, we can skip following job traces that are in these statuses.
skip_follow_statuses = COMPLETED_STATUSES
if not force_manual:
# If the target job is marked as manual and we don't force it to run, it will be skipped.
skip_follow_statuses.add("manual")
# Pre-populate the stress status counter for already completed target jobs. # Pre-populate the stress status counter for already completed target jobs.
if stress: if stress:
@@ -235,7 +240,7 @@ def monitor_pipeline(
) )
return None, 1, execution_times return None, 1, execution_times
if {"success", "manual"}.issuperset(target_statuses.values()): if skip_follow_statuses.issuperset(target_statuses.values()):
return None, 0, execution_times return None, 0, execution_times
pretty_wait(REFRESH_WAIT_JOBS) pretty_wait(REFRESH_WAIT_JOBS)