From 3640a7625399a68f17724e8ba168192cb18df073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Bautista=20Fern=C3=A1ndez?= Date: Fri, 29 May 2026 13:26:15 +0200 Subject: [PATCH] fix(ci): enforce critical test watchdog --- .gitea/workflows/build.yml | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 1b73be6..8a03c51 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -114,22 +114,20 @@ jobs: print('$ ' + ' '.join(cmd), flush=True) process = subprocess.Popen( cmd, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - text=True, start_new_session=use_process_group, ) - try: - output, _ = process.communicate(timeout=120) - except subprocess.TimeoutExpired: - print(f'ERROR: timeout ejecutando test critico {path}', file=sys.stderr, flush=True) - kill_process_group(process.pid) - cleanup_flutter_processes() - return 124 - if output: - print(output, end='', flush=True) - cleanup_flutter_processes() - return process.returncode + deadline = time.monotonic() + 120 + while True: + returncode = process.poll() + if returncode is not None: + cleanup_flutter_processes() + return returncode + if time.monotonic() >= deadline: + print(f'ERROR: timeout ejecutando test critico {path}', file=sys.stderr, flush=True) + kill_process_group(process.pid) + cleanup_flutter_processes() + return 124 + time.sleep(1) cleanup_flutter_processes() for path in test_paths: