Introduce Integration Tests #4
Workflow file for this run
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: 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 |