diff --git a/.cspell/custom-dictionary.txt b/.cspell/custom-dictionary.txt new file mode 100644 index 0000000..f3ce068 --- /dev/null +++ b/.cspell/custom-dictionary.txt @@ -0,0 +1,19 @@ +# Common collection / Ansible domain-specific words +# Only terms NOT covered by built-in dictionaries + +# Product names and projects +Infinispan +Wildfly +RHBK +rhbk +JBOSSNETWORK + +# Ansible terms +fqcn +FQCN + +# CI / DevOps +sangonzal + +# RST / Sphinx directives +toctree diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06e2c3a..2ca2631 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,18 @@ on: - cron: '18 6 * * *' jobs: + spellcheck: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v7 + + - name: Run cspell + uses: streetsidesoftware/cspell-action@v9 + with: + incremental_files_only: false + use_cspell_files: true + ci: uses: ansible-middleware/github-actions/.github/workflows/ci.yml@main secrets: inherit diff --git a/cspell.json b/cspell.json new file mode 100644 index 0000000..8985c1b --- /dev/null +++ b/cspell.json @@ -0,0 +1,51 @@ +{ + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "version": "0.2", + "language": "en", + "ignorePaths": ["changelogs/**", "CHANGELOG.rst"], + "files": [ + "**/*.md", + "**/*.rst", + "molecule/**/*.yml", + "meta/runtime.yml", + "meta/execution-environment.yml", + ".github/workflows/*.yml", + ".github/ISSUE_TEMPLATE/*.md", + "galaxy.yml" + ], + "dictionaries": [ + "custom-common", + "java", + "bash", + "shellscript", + "fullstack", + "softwareTerms", + "software-tools", + "cpp-compound-words", + "python", + "docker", + "k8s", + "html", + "css", + "git", + "networking-terms", + "node", + "npm" + ], + "dictionaryDefinitions": [ + { + "name": "custom-common", + "path": ".cspell/custom-dictionary.txt", + "addWords": true + } + ], + "ignoreRegExpList": [ + "/\\{\\{.*?\\}\\}/g", + "/`[^`]+`/g", + "/(https?:\\/\\/[^\\s)]+)/g", + "/\\|`?[a-z_]+`?\\|/g", + "/\\[.*?\\]\\(.*?\\)/g", + "/^\\s*authors?:.*$/gm", + "/^\\s*-\\s+.*<[^>]+>.*$/gm" + ] +}