name: test | python 3.9

on:
  pull_request:
    branches:
      - main
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

env:
  RUNTIME__LOG_LEVEL: ERROR

jobs:
  get_docs_changes:
    name: docs changes
    uses: ./.github/workflows/get_docs_changes.yml

  run_common:
    name: test
    needs: get_docs_changes
    if: needs.get_docs_changes.outputs.changes_outside_docs == 'true'
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    defaults:
      run:
        shell: bash

    steps:
      - name: Check out
        uses: actions/checkout@master

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.9.x'

      - name: Install Poetry
        # https://github.com/snok/install-poetry#running-on-windows
        uses: snok/install-poetry@v1.3.2
        with:
          virtualenvs-create: true
          virtualenvs-in-project: true
          installer-parallel: true

      - name: Install dependencies
        run: poetry install --no-interaction

      - name: Run tests
        run: poetry run pytest tests/

      - name: Run default basic pipeline
        env:
          ENV: 'dev'
          LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: poetry run python ./cognee/tests/test_library.py

      - name: Clean up disk space
        run: |
          sudo rm -rf ~/.cache
          sudo rm -rf /tmp/*
          df -h

      - name: Build with Poetry
        run: poetry build

      - name: Install Package
        run: |
         cd dist
         pip install *.whl
