fix(ci): smoke test silnika B bez kontenera w tle i bez sieci #16

Merged
gitea merged 1 commits from fix/ci-swisseph-smoke into master 2026-07-22 16:36:53 +00:00
Owner

Dlaczego padalo

Conflict. The container name "/swe" is already in use

Dwie wady starego kroku — obie moje:

  1. Brak sprzatania. Krok startowal kontener w tle (docker run -d --name swe) i nigdy go
    nie usuwal
    . Pierwszy przebieg zostawial swe na runnerze, a kazdy nastepny wywalal sie na
    konflikcie nazwy. Stad „regularnie pada".
  2. Zly localhost. Krok pukal curl-em w localhost:8003, ale job Gitea Actions sam dziala
    w kontenerze
    , a -p publikuje port na hoscie. To nie ten sam localhost — health-check
    nie 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 endpointow
wprost. Omija oba problemy naraz: zero sieci, zero portow, --rm gwarantuje, ze nic nie zostaje.

Sprawdza to samo co wczesniej i wiecej:

  • obraz sie zbudowal i pyswisseph faktycznie liczy,
  • /health odpowiada status: ok,
  • komplet 13 obiektow (kontrakt parzystosci LOG-28),
  • Slonce w oczekiwanym zakresie dla horoskopu referencyjnego (30.04.1984),
  • SN = NN + 180 z dokladnoscia do 1e-6.

Dolozony krok if: always() usuwajacy osierocony kontener swe ze starych przebiegow —
jednorazowe posprzatanie runnera.

Weryfikacja

Uruchomilem dokladnie ten kod lokalnie na realnym pyswisseph (odtworzylem srodowisko
z fastapi + pyswisseph): Sun=40.2102 NN=68.1530 obiektow=13 SMOKE OK — zgodne z wyrocznia.
Sprawdzilem tez, ze po dedentcie YAML terminator heredoc PY ląduje na poczatku linii, bo
inaczej bash by go nie rozpoznal.

Gdyby na runnerze nadal wisial stary kontener, mozna go tez ubic recznie:
docker rm -f swe

## Dlaczego padalo ``` Conflict. The container name "/swe" is already in use ``` Dwie wady starego kroku — obie moje: 1. **Brak sprzatania.** Krok startowal kontener w tle (`docker run -d --name swe`) i **nigdy go nie usuwal**. Pierwszy przebieg zostawial `swe` na runnerze, a kazdy nastepny wywalal sie na konflikcie nazwy. Stad „regularnie pada". 2. **Zly localhost.** Krok pukal `curl`-em w `localhost:8003`, ale job Gitea Actions **sam dziala w kontenerze**, a `-p` publikuje port na **hoscie**. To nie ten sam localhost — health-check nie 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 endpointow wprost. Omija oba problemy naraz: zero sieci, zero portow, `--rm` gwarantuje, ze nic nie zostaje. Sprawdza to samo co wczesniej **i wiecej**: - obraz sie zbudowal i `pyswisseph` faktycznie liczy, - `/health` odpowiada `status: ok`, - komplet **13 obiektow** (kontrakt parzystosci LOG-28), - Slonce w oczekiwanym zakresie dla horoskopu referencyjnego (30.04.1984), - **SN = NN + 180** z dokladnoscia do 1e-6. Dolozony krok `if: always()` usuwajacy osierocony kontener `swe` ze starych przebiegow — jednorazowe posprzatanie runnera. ## Weryfikacja Uruchomilem **dokladnie ten kod** lokalnie na realnym `pyswisseph` (odtworzylem srodowisko z fastapi + pyswisseph): `Sun=40.2102 NN=68.1530 obiektow=13 SMOKE OK` — zgodne z wyrocznia. Sprawdzilem tez, ze po dedentcie YAML terminator heredoc `PY` ląduje na poczatku linii, bo inaczej bash by go nie rozpoznal. > Gdyby na runnerze nadal wisial stary kontener, mozna go tez ubic recznie: > `docker rm -f swe`
gitea added 1 commit 2026-07-22 15:29:54 +00:00
fix(ci): smoke test silnika B bez kontenera w tle i bez sieci
Testy / Testy warstwy logicznej (silnik) (pull_request) Successful in 10m54s
Testy / Testy warstwy prezentacji (dostęp do baz) (pull_request) Successful in 9m54s
Testy / Build obrazu silnika B (swisseph) (pull_request) Successful in 39s
Testy / Kontrola składni wszystkich warstw (pull_request) Successful in 21s
build / build (push) Successful in 56s
Testy / Testy warstwy logicznej (silnik) (push) Successful in 10m53s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m51s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 39s
Testy / Kontrola składni wszystkich warstw (push) Successful in 20s
487dbb8fd3
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>
gitea merged commit 487dbb8fd3 into master 2026-07-22 16:36:53 +00:00
gitea deleted branch fix/ci-swisseph-smoke 2026-07-22 16:36:54 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/astrololo#16