@@ -37,12 +37,70 @@ jobs:
3737 with :
3838 version : 3.44.1
3939
40- - name : Install Dependencies
41- run : task install
40+ - name : Start ToolHive Server
41+ run : |
42+ echo "Starting thv serve --openapi on port 8080..."
43+ thv serve --openapi --port 8080 &
44+ THV_PID=$!
45+ echo "THV_PID=$THV_PID" >> $GITHUB_ENV
46+ echo "thv serve started with PID: $THV_PID"
47+
48+ echo "Waiting for thv serve to be ready..."
49+ MAX_ATTEMPTS=30
50+ for i in $(seq 1 $MAX_ATTEMPTS); do
51+ # Check if the process is still running
52+ if ! kill -0 "$THV_PID" 2>/dev/null; then
53+ wait "$THV_PID" || true
54+ exit_code=$?
55+ echo "ERROR: thv serve process (PID: $THV_PID) exited unexpectedly with code $exit_code"
56+ exit $exit_code
57+ fi
58+
59+ # Check if endpoint returns valid JSON with expected content
60+ if response=$(curl -s --max-time 5 http://127.0.0.1:8080/api/openapi.json 2>&1); then
61+ # Validate JSON
62+ if echo "$response" | python3 -m json.tool > /dev/null 2>&1; then
63+ # Check for openapi field
64+ if echo "$response" | grep -q "openapi"; then
65+ echo "thv serve is ready!"
66+ break
67+ else
68+ echo "Attempt $i/$MAX_ATTEMPTS: Response doesn't contain 'openapi' field"
69+ fi
70+ else
71+ echo "Attempt $i/$MAX_ATTEMPTS: Invalid JSON response"
72+ fi
73+ else
74+ echo "Attempt $i/$MAX_ATTEMPTS: curl failed"
75+ fi
76+
77+ if [ $i -eq $MAX_ATTEMPTS ]; then
78+ echo "ERROR: thv serve did not become ready after $MAX_ATTEMPTS attempts"
79+ echo "Last response: $response"
80+ # Kill the process if it's still running
81+ kill "$THV_PID" 2>/dev/null || true
82+ exit 1
83+ fi
84+ sleep 1
85+ done
4286
4387 - name : Generate ToolHive Models
88+ env :
89+ MANAGE_THV : " false"
4490 run : task generate-thv-models
4591
92+ - name : Stop ToolHive Server
93+ if : always()
94+ run : |
95+ if [ -n "$THV_PID" ] && kill -0 "$THV_PID" 2>/dev/null; then
96+ echo "Stopping thv serve (PID: $THV_PID)..."
97+ kill "$THV_PID" 2>/dev/null || true
98+ wait "$THV_PID" 2>/dev/null || true
99+ echo "thv serve stopped"
100+ else
101+ echo "thv serve process not running or already stopped"
102+ fi
103+
46104 - name : Check for Changes
47105 id : check-changes
48106 run : |
65123
66124 Automated update of ToolHive API models from OpenAPI specification.
67125 branch : update-thv-models-${{ github.run_id }}
126+ base : main
68127 delete-branch : true
69128 title : ' chore: Update ToolHive API models'
70129 body : |
0 commit comments