GHA: use pyspelling directly

To avoid depending on Docker Hub, an Docker image and a GitHub Action.
Also to simplify running this check on a local machine.

Pending question if Dependabot and Mend/Renovate will automatically pick
up `requirements-docs.txt`.

Also:
- enable parallel spellchecking. (also to win back the time lost with
  installing components directly from Debian and pip.)
- pin `pyspelling`.
- link to official `pyspelling` docs.

Closes #18736
This commit is contained in:
Viktor Szakats 2025-09-25 14:50:15 +02:00
parent f5bae285f3
commit e48c1ea415
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 21 additions and 6 deletions

5
.github/scripts/requirements-docs.txt vendored Normal file
View file

@ -0,0 +1,5 @@
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# SPDX-License-Identifier: curl
pyspelling==2.11

View file

@ -2,6 +2,7 @@
#
# SPDX-License-Identifier: curl
#
# Docs: https://facelessuser.github.io/pyspelling/configuration/
# Docs: https://github.com/UnicornGlobal/spellcheck-github-actions
matrix:
- name: Markdown

View file

@ -113,13 +113,22 @@ jobs:
# shellcheck disable=SC2046
.github/scripts/cleancmd.pl $(find docs -name '*.md')
- name: 'setup the custom wordlist'
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
- name: 'install'
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get -o Dpkg::Use-Pty=0 update
sudo rm -f /var/lib/man-db/auto-update
sudo apt-get -o Dpkg::Use-Pty=0 install aspell aspell-en
python3 -m venv ~/venv
~/venv/bin/pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r .github/scripts/requirements-docs.txt
- name: 'check Spelling'
uses: rojopolis/spellcheck-github-actions@739a1e3ceb79a98a5d4a9bf76f351137f9d78892 # v0
with:
config_path: .github/scripts/spellcheck.yaml
- name: 'check spelling'
run: |
source ~/venv/bin/activate
grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
aspell --version
pyspelling --version
pyspelling --verbose --jobs 5 --config .github/scripts/spellcheck.yaml
badwords-synopsis:
name: 'badwords, synopsis'