Skip to content
name: Debian R2R Docker Build and Integration Test (Debian GNU/Linux 12 (bookworm) amd64)
on:
push:
branches:
- '**'
workflow_dispatch:
jobs:
build-and-test:
runs-on: [ self-hosted, Linux ]
permissions:
packages: write
contents: read
id-token: write
actions: write
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TELEMETRY_ENABLED: false
steps:
- uses: actions/checkout@v4
- name: Clean up disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true
- name: Docker Auth
uses: docker/login-action@v3
with:
username: ${{ secrets.RAGTORICHES_DOCKER_UNAME }}
password: ${{ secrets.RAGTORICHES_DOCKER_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set image name
id: image
run: |
echo "IMAGE_NAME=ragtoriches/dev" >> $GITHUB_OUTPUT
- name: Build and Push Docker Image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: ragtoriches/dev:latest
platforms: linux/amd64
no-cache: true
pull: true
- name: Run cloud LLM integration tests in Docker
run: |
python3 -m venv venv
source venv/bin/activate
pip install -e .
echo "R2R Version"
r2r version
echo "R2R Serve --docker"
r2r serve --docker --exclude-neo4j=true --exclude-ollama=true --image=ragtoriches/dev:latest
echo "Waiting for services to start..."
sleep 30
echo "Ingest Data"
r2r ingest-sample-files
echo "Get Documents Overview"
r2r documents-overview
echo "Get Document Chunks"
r2r document-chunks 93123a68-d668-51de-8291-92162730dc87
echo "Delete Documents"
r2r delete --keys=document_id --values=b736292c-11e6-5453-9686-055da3edb866
echo "Vector Search"
r2r search --query="What was Uber'\''s profit in 2020?"
echo "Hybrid Search"
r2r search --query="What is a fierce nerd?" --use-hybrid-search
echo "Basic RAG"
r2r rag --query="What was Uber'\''s profit in 2020?"
echo "RAG with Hybrid Search"
r2r rag --query="Who is John Snow?" --use-hybrid-search
echo "Streaming RAG"
r2r rag --query="What was Lyft'\''s profit in 2020?" --stream
echo "Users Overview"
r2r users-overview
echo "Analytics"
r2r analytics --filters '{"search_latencies": "search_latency"}' --analysis-types '{"search_latencies": ["basic_statistics", "search_latency"]}'
echo "Logging"
r2r logs
echo "Docker Down"
r2r docker-down
cleanup:
needs: build-and-test
runs-on: [ self-hosted, Linux ]
if: always()
steps:
- name: Clean up Virtual Environment
run: |
if [ -d "venv" ]; then
deactivate || true
rm -rf venv
fi
docker stop $(docker ps -a -q) || true
docker system prune -af --volumes
docker network prune --force
docker volume rm $(docker volume ls -qf dangling=true) || true