fix(ci): smoke test silnika B bez kontenera w tle i bez sieci #16
Reference in New Issue
Block a user
Delete Branch "fix/ci-swisseph-smoke"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Dlaczego padalo
Dwie wady starego kroku — obie moje:
docker run -d --name swe) i nigdy gonie usuwal. Pierwszy przebieg zostawial
swena runnerze, a kazdy nastepny wywalal sie nakonflikcie nazwy. Stad „regularnie pada".
curl-em wlocalhost:8003, ale job Gitea Actions sam dzialaw kontenerze, a
-ppublikuje port na hoscie. To nie ten sam localhost — health-checknie mial prawa dojsc. Podejrzewam, ze wlasnie dlatego pierwszy przebieg tez zawiodl i zostawil
po sobie kontener.
Naprawa
Test biegnie wewnatrz obrazu (
docker run --rm ... python -) i wola funkcje endpointowwprost. Omija oba problemy naraz: zero sieci, zero portow,
--rmgwarantuje, ze nic nie zostaje.Sprawdza to samo co wczesniej i wiecej:
pyswissephfaktycznie liczy,/healthodpowiadastatus: ok,Dolozony krok
if: always()usuwajacy osierocony kontenersweze starych przebiegow —jednorazowe posprzatanie runnera.
Weryfikacja
Uruchomilem dokladnie ten kod lokalnie na realnym
pyswisseph(odtworzylem srodowiskoz fastapi + pyswisseph):
Sun=40.2102 NN=68.1530 obiektow=13 SMOKE OK— zgodne z wyrocznia.Sprawdzilem tez, ze po dedentcie YAML terminator heredoc
PYląduje na poczatku linii, boinaczej bash by go nie rozpoznal.
Job „Build obrazu silnika B" padal na kazdym przebiegu po pierwszym: Conflict. The container name "/swe" is already in use Dwie wady starego kroku, obie moje: 1. startowal kontener w tle (docker run -d --name swe) i NIGDY go nie usuwal, wiec nazwa zostawala zajeta na runnerze i kolejne przebiegi sie wywalaly; 2. pukal curl-em w localhost:8003, podczas gdy job Gitea Actions sam dziala w kontenerze, a -p publikuje port na HOSCIE — to nie ten sam localhost, wiec health-check i tak nie mial prawa dojsc. Teraz test biegnie WEWNATRZ obrazu (docker run --rm ... python -), wolajac funkcje endpointow wprost. Omija oba problemy, nie zostawia niczego po sobie, a sprawdza to samo i wiecej: obraz sie zbudowal, pyswisseph liczy, komplet 13 obiektow, Slonce w oczekiwanym zakresie, SN = NN + 180. Dodany krok sprzatajacy osierocony kontener „swe" ze starych przebiegow. Zweryfikowane lokalnie na realnym pyswisseph: Sun=40.2102, NN=68.1530, 13 obiektow — zgodnie z wyrocznia. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>