Fix sed command in github action #33
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |