Skip to content

Introduce Integration Tests #4

Introduce Integration Tests

Introduce Integration Tests #4

name: R2R Docker Build and Integration Test
on:
push:
branches: [ main ]
pull_request:
workflow_dispatch:
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DBNAME: postgres
CONFIG_NAME: vecs
jobs:
build-and-test:
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- name: Build R2R Docker image
run: |
docker build -t emrgntcmplxty/r2r:${{ github.sha }} .
- name: Pull pgvector image
run: docker pull pgvector/pgvector:pg16
- name: Create Docker network
run: docker network create r2r-network
- name: Start containers
run: |
docker run -d --name postgres --network r2r-network \
-e POSTGRES_USER=${POSTGRES_USER} \
-e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
-e POSTGRES_DB=${POSTGRES_DBNAME} \
pgvector/pgvector:pg16
docker run -d --name r2r --network r2r-network \
-e POSTGRES_USER=${POSTGRES_USER} \
-e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
-e POSTGRES_HOST=postgres \
-e POSTGRES_PORT=5432 \
-e POSTGRES_DBNAME=${POSTGRES_DBNAME} \
-e POSTGRES_VECS_COLLECTION=${CONFIG_NAME} \
-p 8000:8000 \
emrgntcmplxty/r2r:${GITHUB_SHA}
- name: Check container status
run: docker ps -a
- name: Check R2R container logs
run: docker logs r2r
- name: Wait for containers to be ready
run: |
timeout 60s bash -c 'until docker exec postgres pg_isready -U ${POSTGRES_USER}; do sleep 5; done'
- name: Run integration tests
run: |
echo "R2R Version:"
docker exec r2r r2r version
- name: Clean up
if: always()
run: |
docker stop r2r postgres
docker rm r2r postgres
docker network rm r2r-network