Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test.yml 1.48 KiB
name: Test

on:
  push:
    branches:
      - main
  pull_request:

env:
  POETRY_VERSION: "1.5.1"

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version:
          - "3.9"
          - "3.10"
          - "3.11"
          # - "3.12"
    steps:
      - uses: actions/checkout@v4
      - name: Cache Poetry
        uses: actions/cache@v3
        with:
          path: ~/.poetry
          key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
          restore-keys: |
            ${{ runner.os }}-poetry-
      - name: Install poetry
        run: |
          pipx install poetry==$POETRY_VERSION
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.python-version }}
          cache: poetry
      - name: Install dependencies
        run: |
          poetry install --all-extras
      - name: Install nltk
        run: |
          pip install nltk
      - name: Download nltk data
        run: |
          python -m nltk.downloader punkt stopwords wordnet
      - name: Pytest All
        env:
          PINECONE_API_KEY: ${{ secrets.PINECONE_API_KEY }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          make test
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v2
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
        with:
          file: ./coverage.xml
          fail_ci_if_error: false