name: Run Pytest on: pull_request: branches: - main paths: - api/** - docker/** concurrency: group: api-tests-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: test: name: API Tests runs-on: ubuntu-latest strategy: matrix: python-version: - "3.10" - "3.11" steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: | ./api/requirements.txt ./api/requirements-dev.txt - name: Install dependencies run: pip install -r ./api/requirements.txt -r ./api/requirements-dev.txt - name: Run Unit tests run: dev/pytest/pytest_unit_tests.sh - name: Run ModelRuntime run: dev/pytest/pytest_model_runtime.sh - name: Run Tool run: dev/pytest/pytest_tools.sh - name: Set up Sandbox uses: hoverkraft-tech/compose-action@v2.0.0 with: compose-file: | docker/docker-compose.middleware.yaml services: | sandbox ssrf_proxy - name: Run Workflow run: dev/pytest/pytest_workflow.sh - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS) uses: hoverkraft-tech/compose-action@v2.0.0 with: compose-file: | docker/docker-compose.middleware.yaml docker/docker-compose.qdrant.yaml docker/docker-compose.milvus.yaml docker/docker-compose.pgvecto-rs.yaml docker/docker-compose.pgvector.yaml services: | weaviate qdrant etcd minio milvus-standalone pgvecto-rs pgvector - name: Test Vector Stores run: dev/pytest/pytest_vdb.sh