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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user