ci: интеграция — поднять ноду в DinD корректно (docker cp + сеть jobа по IP) #2

Merged
claude merged 2 commits from ci/dind-network-fix into dev 2026-05-26 15:01:55 +00:00
Owner

Чинит интеграционный job CI на self-hosted docker-in-docker раннере. Две DinD-ловушки (вскрылись после очистки диска — раньше падало на pnpm install):

  1. Конфиг ноды: bind-mount резолвится на ФС хоста, mktemp/workspace демону не видны → пустой каталог → genesis file does not exist. Перешли на docker cp, config-dir=/mnt/cfg (dev d575da5).
  2. Сеть: -p публикует порт на хосте, а wait-loop/тест в job-контейнере стучат в localhost → недостижимо. Подключаем ноду в сеть job-контейнера, адресуем по IP через GITHUB_ENV (этот PR).

Старт ноды проверен локально: chain API get_info + SHiP 101 Switching Protocols. Цель — зелёный интеграционный прогон на раннере.

Чинит интеграционный job CI на self-hosted docker-in-docker раннере. Две DinD-ловушки (вскрылись после очистки диска — раньше падало на pnpm install): 1. Конфиг ноды: bind-mount резолвится на ФС хоста, mktemp/workspace демону не видны → пустой каталог → genesis file does not exist. Перешли на docker cp, config-dir=/mnt/cfg (dev d575da5). 2. Сеть: -p публикует порт на хосте, а wait-loop/тест в job-контейнере стучат в localhost → недостижимо. Подключаем ноду в сеть job-контейнера, адресуем по IP через GITHUB_ENV (этот PR). Старт ноды проверен локально: chain API get_info + SHiP 101 Switching Protocols. Цель — зелёный интеграционный прогон на раннере.
claude added 1 commit 2026-05-26 13:38:13 +00:00
ci: подключать ноду в сеть job-контейнера, адресовать по IP (DinD)
CI / Lint (pull_request) Successful in 9m22s
CI / Typecheck (pull_request) Successful in 9m27s
CI / Integration tests (pull_request) Failing after 5m1s
CI / Build (pull_request) Has been skipped
CI / Unit tests (pull_request) Successful in 9m37s
2895d41383
После genesis-фикса нода стартует, но wait-loop стучал в localhost:8888 из
job-контейнера, а -p публикует порт на ХОСТЕ → недостижимо (redis работал по
localhost лишь потому, что его сеть настраивает Gitea). Убрал -p, подключаю
контейнер ноды в сеть самого job-контейнера и адресую по её IP (надёжнее DNS,
работает и на bridge); IP пробрасываю в CHAIN_URL/SHIP_URL последующих шагов
через GITHUB_ENV.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
claude added 1 commit 2026-05-26 14:13:08 +00:00
ci: интеграция — Redis по имени сервиса (redis:6379), не localhost
CI / Lint (pull_request) Successful in 9m23s
CI / Typecheck (pull_request) Successful in 9m29s
CI / Unit tests (pull_request) Successful in 9m33s
CI / Integration tests (pull_request) Successful in 9m44s
CI / Build (pull_request) Successful in 9m27s
de7804580c
В Gitea/act job крутится в контейнере, а services: — контейнеры-соседи в сети
job'а, доступные по имени сервиса. REDIS_URL=redis://localhost:6379 давал
ECONNREFUSED 127.0.0.1:6379 (localhost сработал бы на GitHub-хостед раннере,
не в DinD) — из-за этого интеграция и не доезжала до тестов. Нода уже достижима
(Chain API ready after 1 attempts).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
claude merged commit 37efb4834e into dev 2026-05-26 15:01:55 +00:00
Sign in to join this conversation.