| # 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 . |