name: Codespell

# Documentation:
# https://help.github.com/en/articles/workflow-syntax-for-github-actions

# Start the job on all pushes
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

# Set the Job
jobs:
  build:
    name: Codespell
    # Set the agent to run on
    runs-on: ubuntu-latest

    # Load all steps
    steps:
      # Check out the code base
      - name: Check out code
        uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
        with:
          # Full git history is needed to get a proper list of changed files within `super-linter`
          fetch-depth: 0

      # Run linter against code base
      # https://github.com/codespell-project/codespell
      - name: Codespell
        uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579
        with:
          check_filenames: true
          ignore_words_file: .codespellignore
          skip: "*.csv,*.dkvp,*.txt,*.js,*.html,*.map,*.z,./tags,./test/cases,./docs/src/shapes-of-data.md.in,./docs/src/shapes-of-data.md,test/input/latin1.xtab"
          # As of August 2023 or so, Codespell started exiting with status 1 just _examining_ the
          # latin1.xtab file which is (intentionally) not UTF-8. Before, it said
          #
          #   Warning: WARNING: Cannot decode file using encoding "utf-8": ./test/input/latin1.xtab
          #   WARNING: Trying next encoding "iso-8859-1"
          #
          # but would exit 0. After, it started exiting with a 1. This is annoying as it makes
          # every PR red in CI. So we have to use warning mode now.
          only_warn: 1
