name: Python Integration Tests on: push: branches: - "**/main" # match branches like feature/main - "main" # match the main branch pull_request: types: - opened - reopened - synchronize - ready_for_review branches: - "**/main" - "main" paths-ignore: - "**/*.md" - ".semversioner/**" permissions: contents: read pull-requests: read concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} # only run the for the latest commit cancel-in-progress: true jobs: python-ci: # skip draft PRs if: github.event.pull_request.draft == false strategy: matrix: python-version: ["3.10"] os: [ubuntu-latest, windows-latest] fail-fast: false # continue running all jobs even if one fails env: DEBUG: 1 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v3 id: changes with: filters: | python: - 'graphrag/**/*' - 'uv.lock' - 'pyproject.toml' - '**/*.py' - '**/*.toml' - '**/*.ipynb' - '.github/workflows/python*.yml' - 'tests/integration/**/*' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@v6 - name: Install dependencies shell: bash run: | uv sync --extra dev uv pip install gensim - name: Build run: | uv build - name: Install and start Azurite shell: bash run: | npm install -g azurite azurite --silent --skipApiVersionCheck --location /tmp/azurite --debug /tmp/azurite-debug.log & # For more information on installation/setup of Azure Cosmos DB Emulator # https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-develop-emulator?tabs=docker-linux%2Cpython&pivots=api-nosql # Note: the emulator is only available on Windows runners. It can take longer than the default to initially startup so we increase the default timeout. # If a job fails due to timeout, restarting the cicd job usually resolves the problem. - name: Install Azure Cosmos DB Emulator if: runner.os == 'Windows' run: | Write-Host "Launching Cosmos DB Emulator" Import-Module "$env:ProgramFiles\Azure Cosmos DB Emulator\PSModules\Microsoft.Azure.CosmosDB.Emulator" Start-CosmosDbEmulator -Timeout 500 - name: Integration Test run: | uv run poe test_integration