From e519c49f86b99681503bbbd01105e66bc7505d87 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Wed, 25 Feb 2026 20:47:29 +0100 Subject: [PATCH] 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 --- .gitlab-ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 47a0c70e7..1ca776f91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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)