diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml new file mode 100644 index 0000000..3586002 --- /dev/null +++ b/.github/workflows/unittest.yml @@ -0,0 +1,61 @@ +name: FastAPI Tests with PostgreSQL and uv + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + + services: + database: + image: pgvector/pgvector:pg15 + env: + POSTGRES_DB: test_db + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_HOST_AUTH_METHOD: trust + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v2 + with: + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: "Set up Python" + uses: actions/setup-python@v5 + with: + python-version-file: "pyproject.toml" + + - name : Install the project + run: uv sync --all-extras --dev + + - name: Run Tests + run: uv run pytest -x + env: + CONNECTION_URI: postgresql+psycopg://postgres:postgres@localhost:5432/test_db + USE_AUTH_SERVICE: false + SENTRY_ENABLED: false + OPENTELEMETRY_ENABLED: false + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} + AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} + AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }} + AZURE_OPENAI_DEPLOYMENT: ${{ secrets.AZURE_OPENAI_DEPLOYMENT }} + AZURE_OPENAI_EMBED_DEPLOYMENT: ${{ secrets.AZURE_OPENAI_EMBED_DEPLOYMENT }} + + + diff --git a/docker-compose.yml.example b/docker-compose.yml.example index 67b36a5..452c969 100644 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -26,7 +26,7 @@ services: env_file: - .env database: - image: ankane/pgvector + image: pgvector/pgvector:pg15 restart: always ports: - 5432:5432 diff --git a/tests/conftest.py b/tests/conftest.py index 4288afe..279a670 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -27,7 +27,7 @@ # Test database URL # TODO use environment variable CONNECTION_URI = make_url(os.getenv("CONNECTION_URI")) -TEST_DB_URL = CONNECTION_URI.set(database="test") +TEST_DB_URL = CONNECTION_URI.set(database="test_db") DEFAULT_DB_URL = str(CONNECTION_URI.set(database="postgres"))