@@ -105,7 +105,6 @@ jobs:
105105 run : |
106106 # Map 'nginx' to localhost so the Host machine can resolve the URLs in the database
107107 echo "127.0.0.1 nginx" | sudo tee -a /etc/hosts
108- ping -c 1 nginx
109108
110109 - name : Clone Services & Apply Universal Patch
111110 if : matrix.os == 'ubuntu-latest'
@@ -145,9 +144,34 @@ jobs:
145144 echo "3. Waiting for PHP API..."
146145 # Wait up to 5 minutes for PHP to accept connections
147146 timeout 300s bash -c 'until [ "$(docker inspect -f {{.State.Health.Status}} openml-php-rest-api)" == "healthy" ]; do sleep 5; done'
147+
148+ - name : Finalize Setup & Verify Splits
149+ if : matrix.os == 'ubuntu-latest'
150+ run : |
151+ echo "1. Forcing Elasticsearch Indexing Sync..."
152+ # This helps clear the 412 errors the Engine is hitting
153+ curl -s http://nginx:8000/api/v1/xml/admin/index/sync || echo "Sync endpoint not found, skipping..."
154+
155+ echo "2. Waiting for Evaluation Engine to process Task 119..."
156+ echo "Targeting Task 119 (The primary failure point)."
157+
158+ # Give it 5 minutes (300s). Java + indexing + splits generation is heavy.
159+ count=0
160+ while [ $count -lt 30 ]; do
161+ code=$(curl -s -o /dev/null -w "%{http_code}" http://nginx:8000/api_splits/get/119/Task_119_splits.arff)
162+ if [ "$code" == "200" ]; then
163+ echo "✅ SUCCESS: Task 119 splits are ready!"
164+ exit 0
165+ fi
166+ echo " ... waiting for split generation (Current Status: $code)"
167+ sleep 10
168+ count=$((count+1))
169+ done
148170
149- echo "4. Docker Stack is Healthy!"
150- docker ps
171+ echo "❌ ERROR: Evaluation Engine timed out."
172+ # Dump logs only if this step fails
173+ docker exec openml-evaluation-engine cat /logs/evaluation.log || echo "Could not read log file"
174+ exit 1
151175
152176 - name : Error
153177 working-directory : ./services
0 commit comments