# GitHub Action to check our dictionary, this should only be used by the codespell project itself
# For general usage in your repo, see the example in codespell.yml
# https://github.com/codespell-project/codespell
# Concurrency cancels an action on a given PR once a new commit is pushed
name: Pytest
concurrency:
  group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
  cancel-in-progress: true
on: [push, pull_request]
permissions: {}
jobs:
  test:
    env:
      REQUIRE_ASPELL: true
    # Make sure we're using the latest aspell dictionary
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - '3.7'
          - '3.8'
          - '3.9'
          - '3.10'
          - '3.11'
        no-toml:
          - ''
        include:
          - python-version: '3.10'
            no-toml: 'no-toml'
    name: ${{ matrix.python-version }} ${{ matrix.no-toml }}
    steps:
      - uses: actions/checkout@v3
        with:
          persist-credentials: false
      - name: Setup python
        uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.python-version }}
      - run: sudo apt-get install libaspell-dev aspell-en
      - name: Install dependencies
        run: |
          python --version  # just to check
          pip install --upgrade pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
          pip install --upgrade "setuptools!=47.2.0" docutils setuptools_scm[toml] twine
          pip install aspell-python-py3
          pip install -e ".[dev]" # install the codespell dev packages
      - run: codespell --help
      - run: codespell --version
      - run: make check
      - uses: codecov/codecov-action@v3
      # tomli should not be required for the next two steps (and make sure it's not)
      - run: pip uninstall -yq tomli
        if: ${{ matrix.no-toml == 'no-toml' }}
      - run: codespell --check-filenames --skip="./.git/*,*.pyc,./codespell_lib/tests/test_basic.py,./codespell_lib/data/*,./example/code.c,./build/lib/codespell_lib/tests/test_basic.py,./build/lib/codespell_lib/data/*,README.rst,*.egg-info/*,pyproject-codespell.precommit-toml,./.mypy_cache"
      # this file has an error
      - run: "! codespell codespell_lib/tests/test_basic.py"


  make-check-dictionaries:
    runs-on: ubuntu-latest
    steps:
      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.x
      - uses: actions/checkout@v3
        with:
          persist-credentials: false
      - name: Install general dependencies
        run: pip install --upgrade pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
      - name: Install codespell dependencies
        run: pip install -e ".[dev]"
      - uses: codespell-project/sort-problem-matcher@v1
      - run: make check-dictionaries

  ruff-annotation:
    runs-on: ubuntu-latest
    steps:
      - name: Setup python
        uses: actions/setup-python@v4
        with:
          python-version: 3.x
      - uses: actions/checkout@v3
        with:
          persist-credentials: false
      - name: Install codespell dependencies
        run: pip install -e ".[dev]"
      - name: Ruff with annotations
        run: ruff --select=ANN --ignore=ANN101,ANN401 .
