From 54b40857d2710f8096b328afa1a3d0505a1e903d Mon Sep 17 00:00:00 2001 From: migatu Date: Thu, 27 Aug 2026 15:59:36 +0200 Subject: [PATCH] =?UTF-8?q?ci:=20przywr=C3=B3=C4=87=20uruchamianie=20test?= =?UTF-8?q?=C3=B3w=20astrodemo=20i=20wykrywaj=20puste=20kroki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testy astrodemo padały na masterze, choć lokalnie przechodzą — bo w CI nie uruchamiały się WCALE. Dopisując blok astroklienta rozciąłem blok sąsiada: krok „Testy (pytest)" astrodemo został z samym `working-directory`, a jego `env` i `run` przywędrowały do zadania astroklienta. Skutek podwójny i gorszy, niż wygląda: astrodemo zgłaszało błąd (krok bez polecenia), a astroklient przechodził Z NIEWŁAŚCIWEGO POWODU — na cudzym `run`. Zielone CI, które nic nie uruchomiło, jest gorsze od czerwonego, bo nie ma czego naprawiać. Krok bez `run` i bez `uses` jest dla Gitei krokiem pustym. Dopisana kontrola przechodzi wszystkie pliki workflow i przerywa, gdy taki krok się trafi albo gdy zadanie nie ma kroków w ogóle. Sprawdzona w obie strony: przepuszcza obecny stan i wykrywa dokładnie to rozcięcie, gdy je odtworzyć. Co-Authored-By: Claude Opus 5 --- .gitea/workflows/tests.yml | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/tests.yml b/.gitea/workflows/tests.yml index 959b91c..22dd19a 100644 --- a/.gitea/workflows/tests.yml +++ b/.gitea/workflows/tests.yml @@ -108,6 +108,10 @@ jobs: # żadna trasa poza dwiema funkcjami. - name: Testy (pytest) working-directory: services/astrodemo + env: + PYTHONPATH: . + run: pytest tests -q -rs + astroklient-tests: name: Testy astroklient runs-on: ubuntu-latest @@ -125,7 +129,6 @@ jobs: # bo tylko on trafia do obrazu. - name: Testy (pytest) working-directory: services/astroklient - env: PYTHONPATH: . run: pytest tests -q -rs @@ -258,3 +261,33 @@ jobs: # silnika swisseph, który nie wchodzi do produktu). - name: py_compile run: python -m compileall -q services + + # Krok bez `run` i bez `uses` jest dla Gitei krokiem PUSTYM: zadanie mija + # go i kończy się powodzeniem, nie uruchomiwszy niczego. Tak właśnie + # zniknęły na jeden commit testy astrodemo — blok został rozcięty przy + # dopisywaniu sąsiedniego, a jego `run` przywędrował do cudzego zadania, + # które przez to przechodziło z niewłaściwego powodu. + # + # Zielone CI, które nic nie uruchomiło, jest gorsze od czerwonego. + - name: Kontrola kroków w workflow + run: | + python - <<'KONTROLA' + import pathlib, sys, yaml + grzechy = [] + for f in sorted(pathlib.Path(".gitea/workflows").glob("*.y*ml")): + d = yaml.safe_load(f.read_text(encoding="utf-8")) or {} + for nazwa, job in (d.get("jobs") or {}).items(): + kroki = job.get("steps") or [] + if not kroki: + grzechy.append(f"{f.name}: zadanie '{nazwa}' nie ma kroków") + for k in kroki: + if "run" not in k and "uses" not in k: + grzechy.append( + f"{f.name}: '{nazwa}' → krok " + f"'{k.get('name','(bez nazwy)')}' nie ma ani run, ani uses") + if grzechy: + print("PUSTE KROKI — zadanie przeszłoby nic nie robiąc:") + print("\n".join(" " + g for g in grzechy)) + sys.exit(1) + print("Wszystkie kroki mają co uruchomić.") + KONTROLA