Skip to content

Fix sed command in github action #33

Fix sed command in github action

Fix sed command in github action #33

Workflow file for this run

name: Offline Stack Test
on:
push:
branches:
- main
jobs:
test-offline-stack:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Copy .env.example to .env
run: cp .env.example .env
- name: Create docs directory
run: mkdir -p docs
- name: Download and extract documentation
run: |
curl -L "${{ secrets.DOCS_URL }}" -o documentation.zip
unzip documentation.zip -d docs
rm documentation.zip
- name: Set LANGFUSE_PUBLIC_KEY environment variable
run: sed -i "s/^LANGFUSE_PUBLIC_KEY=.*/LANGFUSE_PUBLIC_KEY=\${{ secrets.LANGFUSE_PK }}/" .env
- name: Set LANGFUSE_SECRET_KEY environment variable
run: sed -i "s/^LANGFUSE_SECRET_KEY=.*/LANGFUSE_SECRET_KEY=\${{ secrets.LANGFUSE_SK }}/" .env
- name: Set LANGFUSE_HOST environment variable
run: sed -i "s|^LANGFUSE_HOST=.*|LANGFUSE_HOST=\${{ secrets.LANGFUSE_HOST }}|" .env
- name: Enable LOCAL_EMBEDDING
run: sed -i "s|^LOCAL_EMBEDDING=false|LOCAL_EMBEDDING=true|" .env
- name: Set GROQ_API_KEY environment variable
run: sed -i "s/^GROQ_API_KEY=.*/GROQ_API_KEY=\${{ secrets.GROQ_API_KEY }}/" .env
- name: Set OLLAMA_BASE_URL
run: sed -i "s|^OLLAMA_BASE_URL=.*|OLLAMA_BASE_URL=http://ollama:11434|" .env
- name: Set OLLAMA_TIMEOUT
run: sed -i "s|^OLLAMA_TIMEOUT=.*|OLLAMA_TIMEOUT=300|" .env
- name: Show contents of .env
run: cat .env
- name: Run docker-compose
run: docker-compose up -d
- name: Basic wait
run: sleep 120
- name: List running containers
run: docker ps
- name: Log last 10 lines from all containers
run: docker ps -q | xargs -I {} docker logs --tail 10 {}
- name: Log RAG api
run: docker logs kakawa_rag_api --tail 30
- name: Pull Ollama model
run: |
OLLAMA_MODEL=$(grep OLLAMA_MODEL .env | cut -d '=' -f2)
docker exec ollama ollama pull $OLLAMA_MODEL
- name: Test LangFuse API endpoint
run: |
response=$(docker exec langfuse wget --header='accept: application/json' -qO - 'http://langfuse:3000/api/public/health')
if echo "$response" | grep OK; then
echo "Health check OK"
else
echo "Health check failed"
exit 1
fi
- name: Test Qdrant API endpoint
run: |
response=$(docker exec kakawa_rag_api python -c "import requests; response = requests.get('http://qdrant:6333/healthz', headers={'accept': 'application/json'}); print(response.status_code)")
if [ "$response" -eq 200 ]; then
echo "Healthz check passed"
else
echo "Healthz check failed"
exit 1
fi
- name: Test Ollama API endpoint
run: |
OLLAMA_MODEL=$(grep OLLAMA_MODEL .env | cut -d '=' -f2)
response=$(docker exec kakawa_rag_api python -c "import requests; response = requests.post('http://ollama:11434/api/generate', json={'model': '$OLLAMA_MODEL', 'prompt': 'Hello', 'stream': False}).json(); print(response['response'])")
echo "$response"
- name: Execute RAG API query
run: |
commit_hash=$(git rev-parse --short HEAD)
echo $commit_hash
success=false
for i in {1..5}; do
response=$(docker exec kakawa_rag_api python -c "import requests; response = requests.get('http://kakawa_rag_api:8000/rag?query=How%20to%20install%20Mapeo&user_id=github_action&session_id=$commit_hash', headers={'accept': 'application/json'}); print(response.status_code)")
if [ "$response" -eq 200 ]; then
echo "RAG API endpoint is up and running."
success=true
break
else
echo "Attempt $i failed with status code $response. Retrying in 20 seconds..."
sleep 20
fi
done
if [ "$success" = false ]; then
echo "RAG API endpoint check failed after 5 attempts."
exit 1
fi