# 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: Test Codespell
concurrency:
  group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
  cancel-in-progress: true
on: [push, pull_request]
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'
    name: Python ${{ matrix.python-version }} test
    steps:
      - uses: actions/checkout@v3
      - 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 -U pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
          pip install --upgrade chardet "setuptools!=47.2.0" docutils setuptools_scm[toml]
          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
      - 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/*"
      # 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
      - name: Install general dependencies
        run: pip install -U 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

  flake8-annotation:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Flake8 with annotations
        uses: TrueBrain/actions-flake8@v2
