name: CI on: push: branches: - main - '**/feature/*' pull_request: branches: - main jobs: pre-commit: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12.4' # Specify your Python version here - name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry poetry install - name: Install pre-commit run: poetry run pre-commit install - name: Run pre-commit run: poetry run pre-commit run --all-files pytest: runs-on: ubuntu-latest timeout-minutes: 15 # Increased timeout to accommodate Ollama setup env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} POSTGRES_DBNAME: ${{ secrets.POSTGRES_DBNAME }} POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }} POSTGRES_PORT: ${{ secrets.POSTGRES_PORT }} POSTGRES_USER: ${{ secrets.POSTGRES_USER }} POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }} POSTGRES_VECS_COLLECTION: ${{ secrets.POSTGRES_VECS_COLLECTION }} steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12.4' - name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry poetry install - name: Install Ollama run: | curl -fsSL https://ollama.com/install.sh | sudo -E sh - name: Start Ollama server run: | ollama serve & sleep 5 curl -i http://localhost:11434 - name: Pull Ollama model run: | ollama pull llama2 - name: Run tests run: poetry run pytest tests/ -k "not redis and not sentence_transformer" - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v4.0.1 with: token: ${{ secrets.CODECOV_TOKEN }}