fix(ci): add Redis sidecar with bash /dev/tcp readiness wait

K8s executor doesn't wait for service containers to be healthy.
Use bash built-in /dev/tcp for readiness check (no netcat needed).
Remove --skip for redis_integration_test since sidecar provides Redis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-25 20:47:29 +01:00
parent a6fbc56ea3
commit e519c49f86

View File

@@ -86,11 +86,22 @@ test:
extends: .rust-base
stage: test
needs: [check]
services:
- name: redis:7-alpine
alias: redis
script:
# Remove CUDA stubs from LD_LIBRARY_PATH — nvidia RuntimeClass provides real libcuda.so
- export LD_LIBRARY_PATH=$(echo "$LD_LIBRARY_PATH" | tr ':' '\n' | grep -v stubs | tr '\n' ':' | sed 's/:$//')
- nvidia-smi # verify GPU access
- cargo test --workspace --lib -- --skip model_loader::tests --skip persistence::redis_integration_test
# Wait for Redis sidecar (K8s executor doesn't wait for service readiness)
- |
for i in $(seq 1 30); do
if bash -c 'echo PING > /dev/tcp/localhost/6379' 2>/dev/null; then
echo "Redis ready"; break
fi
echo "Waiting for Redis... ($i/30)"; sleep 1
done
- cargo test --workspace --lib -- --skip model_loader::tests
# --------------------------------------------------------------------------
# Stage 3: Build + push service images (main only, Kaniko → GitLab registry)