name: test on: pull_request: paths: - src/khoj/** - tests/** - '!tests/evals/**' - config/** - pyproject.toml - .pre-commit-config.yml - .github/workflows/test.yml push: branches: - master paths: - src/khoj/** - tests/** - '!tests/evals/**' - config/** - pyproject.toml - .pre-commit-config.yml - .github/workflows/test.yml jobs: test: name: Run Tests runs-on: ubuntu-latest container: ubuntu:jammy strategy: fail-fast: false matrix: python_version: - '3.10' - '3.11' - '3.12' services: postgres: image: ankane/pgvector env: POSTGRES_PASSWORD: postgres POSTGRES_USER: postgres ports: - 5432:5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python_version }} - name: ⏬️ Install Dependencies env: DEBIAN_FRONTEND: noninteractive run: | apt update && apt install -y git libegl1 sqlite3 libsqlite3-dev libsqlite3-0 ffmpeg libsm6 libxext6 # required by llama-cpp-python prebuilt wheels apt install -y musl-dev && ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1 - name: ⬇️ Install Postgres env: DEBIAN_FRONTEND: noninteractive run : | apt install -y postgresql postgresql-client && apt install -y postgresql-server-dev-14 - name: ⬇️ Install pip run: | apt install -y python3-pip python -m ensurepip --upgrade python -m pip install --upgrade pip - name: ⬇️ Install Application env: PIP_EXTRA_INDEX_URL: "https://download.pytorch.org/whl/cpu https://abetlen.github.io/llama-cpp-python/whl/cpu" CUDA_VISIBLE_DEVICES: "" run: sed -i 's/dynamic = \["version"\]/version = "0.0.0"/' pyproject.toml && pip install --upgrade .[dev] - name: 🧪 Test Application env: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres run: pytest timeout-minutes: 10