ci: монтировать pristine-копию node-config через mktemp + запас по таймауту
CI / Lint (pull_request) Successful in 10m1s
CI / Typecheck (pull_request) Failing after 13m8s
CI / Integration tests (pull_request) Has been skipped
CI / Build (pull_request) Has been skipped
CI / Unit tests (pull_request) Has been skipped

Настоящая причина падения integration — не медленный старт, а краш узла:
'plugin_config_exception: Incorrect plugin configuration'. nodeos генерирует
protocol_features/*.json в смонтированный config-каталог; при монтировании
самого workspace эти untracked root-файлы остаются между прогонами на
персистентном раннере и ломают конфиг. Монтируем свежую копию в mktemp-каталог
— узел стартует на чистом конфиге. Заодно sleep 4 (бюджет ожидания ~8 мин).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
coopops
2026-05-26 04:25:54 +00:00
parent 82d3ed2643
commit 1c3cf56dd0
+10 -2
View File
@@ -89,9 +89,17 @@ jobs:
# с фиксированным именем blockchain, и следующий docker run падает с
# exit 125 (Conflict, name already in use). Сносим остаток перед стартом.
docker rm -f blockchain 2>/dev/null || true
# nodeos на старте генерирует protocol_features/*.json В смонтированный
# config-каталог. Если монтировать сам workspace, эти файлы остаются в нём
# (untracked, root-owned — checkout --force их не чистит) и на следующем
# прогоне ломают узел: 'plugin_config_exception: Incorrect plugin
# configuration'. Монтируем pristine-копию во временном каталоге — узел
# пишет сгенерированное туда, workspace остаётся чистым.
CONFIG_DIR=$(mktemp -d)
cp "${GITHUB_WORKSPACE}/packages/parser2/test/integration/node-config/"* "$CONFIG_DIR/"
docker run -d --name blockchain \
-p 8888:8888 -p 8080:8080 -p 9876:9876 \
-v "${GITHUB_WORKSPACE}/packages/parser2/test/integration/node-config:/mnt/dev/config" \
-v "$CONFIG_DIR:/mnt/dev/config" \
dicoop/blockchain:v5.1.0-dev \
/bin/bash -c '/usr/local/bin/nodeos -d /mnt/dev/data -p eosio --config-dir /mnt/dev/config --genesis-json /mnt/dev/config/genesis.json --disable-replay-opts'
sleep 3
@@ -106,7 +114,7 @@ jobs:
exit 0
fi
echo " attempt $i/120..."
sleep 2
sleep 4
done
echo "ERROR: Chain API did not become ready. Container logs:"
docker logs blockchain | tail -100