diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml new file mode 100644 index 000000000..8462ae2b5 --- /dev/null +++ b/.github/workflows/spellcheck.yml @@ -0,0 +1,66 @@ +name: SpellCheck + +on: + push: + branches: + - main + pull_request: + branches: + - main +jobs: + build: + runs-on: ubuntu-20.04 + name: Lint changed files + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + + - name: Check links in all markdown files + uses: gaurav-nelson/github-action-markdown-link-check@1.0.13 + with: + use-verbose-mode: 'yes' + config-file: "scripts/markdown_link_check_config.json" + + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v29.0.4 + with: + + files: | + **/*.py + + spellcheck: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get install aspell aspell-en + pip install pyspelling + + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v29.0.4 + with: + files: | + **/*.md + + - name: Check spellings + run: | + sources="" + for file in ${{ steps.changed-files.outputs.all_changed_files }}; do + sources="${sources} -S $file" + done + if [ ! "$sources" ]; then + echo "No files to spellcheck" + else + pyspelling -c $GITHUB_WORKSPACE/scripts/spellcheck_conf/spellcheck.yaml --name Markdown $sources + fi + + - name: In the case of misspellings + if: ${{ failure() }} + run: | + echo "Please fix the misspellings. If you are sure about some of them, " + echo "so append those to scripts/spellcheck_conf/wordlist.txt"