Skip to content

add pgvector

add pgvector #1829

name: R2R CLI Integration and Regression Test
on:
push:
branches:
- '**' # Trigger on all branches
workflow_dispatch: # Allow manual trigger
jobs:
build-and-test:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
actions: write
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
TELEMETRY_ENABLED: false
POSTGRES_HOST: localhost
POSTGRES_DBNAME: postgres
POSTGRES_PORT: 5432
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
R2R_PROJECT_NAME: r2r_default
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python environment
uses: actions/setup-python@v4
with:
python-version: '3.10' # Use a stable Python version
- name: Install Poetry and dependencies
run: |
curl -sSL https://install.python-poetry.org | python3 -
cd py && poetry install -E core -E ingestion-bundle
- name: Add PostgreSQL Apt Repository
run: |
# Add the PostgreSQL Apt repository
echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
# Download and add the repository GPG key
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg
- name: Install PostgreSQL and pgvector
run: |
sudo apt-get update
sudo apt-get install -y postgresql-15 postgresql-client-15 postgresql-15-pgvector
- name: Start PostgreSQL service
run: sudo systemctl start postgresql
- name: Configure PostgreSQL
run: |
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
sudo -u postgres psql -c "CREATE EXTENSION vector;"
- name: Start R2R server
working-directory: ./py
run: |
poetry run r2r serve &
echo "Waiting for services to start..."
sleep 30
- name: Run integration tests - Ingestion
working-directory: ./py
run: |
poetry run python tests/integration/runner.py test_ingest_sample_files_cli
poetry run python tests/integration/runner.py test_document_ingestion_cli
- name: Stop R2R server
if: always()
run: pkill -f "r2r serve"