@@ -629,17 +629,23 @@ jobs:
629629 deployment/llamastack -n rag-e2e-ui
630630 kubectl wait --for=condition=available --timeout=300s \
631631 deployment/rag -n rag-e2e-ui
632+
633+ echo "Waiting for pods to be ready..."
634+ kubectl wait --for=condition=ready --timeout=600s \
635+ pod -l app.kubernetes.io/name=llamastack -n rag-e2e-ui
636+ kubectl wait --for=condition=ready --timeout=300s \
637+ pod -l app.kubernetes.io/name=rag -n rag-e2e-ui
638+
639+ echo "✅ All pods are ready"
640+ kubectl get pods -n rag-e2e-ui
632641
633642 - name : Expose services via NodePort
634643 run : |
635644 kubectl patch service rag -n rag-e2e-ui -p '{"spec":{"type":"NodePort","ports":[{"port":8501,"nodePort":30080}]}}'
636645 kubectl patch service llamastack -n rag-e2e-ui -p '{"spec":{"type":"NodePort","ports":[{"port":8321,"nodePort":30081}]}}'
637-
638- - name : Port forward services
639- run : |
640- kubectl port-forward -n rag-e2e-ui svc/rag 8501:8501 &
641- kubectl port-forward -n rag-e2e-ui svc/llamastack 8321:8321 &
642- sleep 10
646+
647+ # Verify services
648+ kubectl get services -n rag-e2e-ui
643649
644650 - name : Run UI E2E tests with Playwright
645651 env :
@@ -649,10 +655,74 @@ jobs:
649655 MAAS_MODEL_ID : ${{ env.MAAS_MODEL_ID }}
650656 SKIP_MODEL_TESTS : " false" # Enable MaaS inference tests in UI
651657 run : |
658+ echo "Starting port forwarding and running tests..."
659+
660+ # Start port forwarding in background and keep them running
661+ echo "Starting port forwarding for RAG UI..."
662+ kubectl port-forward -n rag-e2e-ui svc/rag 8501:8501 > /tmp/rag-portforward.log 2>&1 &
663+ RAG_PF_PID=$!
664+ echo "RAG port-forward PID: $RAG_PF_PID"
665+
666+ echo "Starting port forwarding for LlamaStack..."
667+ kubectl port-forward -n rag-e2e-ui svc/llamastack 8321:8321 > /tmp/llamastack-portforward.log 2>&1 &
668+ LLAMASTACK_PF_PID=$!
669+ echo "LlamaStack port-forward PID: $LLAMASTACK_PF_PID"
670+
671+ # Function to check if port forwarding is working
672+ check_port_forwarding() {
673+ (timeout 2 bash -c 'cat < /dev/null > /dev/tcp/localhost/8501' 2>/dev/null) && \
674+ (timeout 2 bash -c 'cat < /dev/null > /dev/tcp/localhost/8321' 2>/dev/null)
675+ }
676+
677+ # Function to verify processes are alive
678+ check_processes() {
679+ kill -0 $RAG_PF_PID 2>/dev/null && kill -0 $LLAMASTACK_PF_PID 2>/dev/null
680+ }
681+
682+ # Wait for port forwarding to establish
683+ echo "Waiting for port forwarding to be ready..."
684+ for i in {1..30}; do
685+ if check_port_forwarding && check_processes; then
686+ echo "✅ Port forwarding is working! (attempt $i)"
687+ break
688+ fi
689+ if [ $i -eq 30 ]; then
690+ echo "❌ Port forwarding failed to establish after 30 attempts"
691+ echo "RAG port-forward log:"
692+ cat /tmp/rag-portforward.log || true
693+ echo "LlamaStack port-forward log:"
694+ cat /tmp/llamastack-portforward.log || true
695+ echo "Checking port-forward processes:"
696+ ps aux | grep "kubectl port-forward" || true
697+ echo "Checking if ports are listening:"
698+ ss -tlnp | grep -E ':(8501|8321)' || netstat -tlnp 2>/dev/null | grep -E ':(8501|8321)' || true
699+ exit 1
700+ fi
701+ echo "Waiting for port forwarding... (attempt $i/30)"
702+ sleep 2
703+ done
704+
705+ # Set up cleanup trap to kill port forwarding on exit
706+ trap "echo 'Cleaning up port forwarding...'; kill $RAG_PF_PID $LLAMASTACK_PF_PID 2>/dev/null || true" EXIT
707+
652708 echo "Running UI E2E tests with MaaS integration..."
653709 echo "MaaS Endpoint: ${MAAS_ENDPOINT}"
654710 echo "MaaS Model ID: ${MAAS_MODEL_ID}"
655- pytest tests/e2e_ui/ -v --tb=short --browser chromium
711+
712+ # Run tests
713+ pytest tests/e2e_ui/ -v --tb=short --browser chromium || TEST_EXIT_CODE=$?
714+
715+ # Verify port forwarding was still working after tests
716+ if ! check_port_forwarding; then
717+ echo "⚠️ Warning: Port forwarding stopped working during tests"
718+ echo "RAG port-forward log:"
719+ cat /tmp/rag-portforward.log || true
720+ echo "LlamaStack port-forward log:"
721+ cat /tmp/llamastack-portforward.log || true
722+ fi
723+
724+ # Exit with test result
725+ exit ${TEST_EXIT_CODE:-0}
656726
657727 - name : Upload Playwright test results
658728 if : always()
0 commit comments