Files
llmsecops-research/.github/workflows/run_server.sh
Adam Wilson cb6ed0827e run server
2025-05-18 16:19:39 -06:00

48 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Get the directory of the script
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Navigate to the project root (2 levels up from .github/workflows)
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
# Move to the project root
cd "$PROJECT_ROOT"
# Start Flask server in the background
python -m src.api.controller &
SERVER_PID=$!
# Function to check if server is up
wait_for_server() {
echo "Waiting for Flask server to start..."
local max_attempts=100
local attempt=0
while [ $attempt -lt $max_attempts ]; do
if curl -s http://localhost:9998/ > /dev/null 2>&1; then
echo "Server is up!"
return 0
fi
attempt=$((attempt + 1))
echo "Attempt $attempt/$max_attempts - Server not ready yet, waiting..."
sleep 1
done
echo "Server failed to start after $max_attempts attempts"
kill $SERVER_PID
return 1
}
# Wait for server to be ready
wait_for_server || exit 1
# Make the actual request once server is ready
echo "Making API request..."
curl -X POST -i http://localhost:9998/api/conversations \
-d '{ "prompt": "describe a random planet in our solar system in 10 words or less" }' \
-H "Content-Type: application/json" || exit 1
echo
exit 0