GitHub Action: Run hlint
See also haskell-actions/hlint-setup, which will install (and cache) HLint.
Executes hlint and presents the output using
actions/toolkit/commands/problem matcher,
so hints are displayed as GitHub annotations.
- fail-on(optional, default: never): When to mark the check as failed. One of:- never,- status,- warning,- suggestion, or- error.
- path(required): The single file or directory name, or formatted JSON array containing multiple. Examples:- - path: src/
- - path: '["src/", "test/"]'
- - path: ${{ toJSON(steps.whatever.changed_dirs) }}(see: docs on toJSON)
 
- hlint-bin(optional): The- hlintbinary path, if not already in- PATH.
The main purpose of this action currently is just to print out GitHub annotations, but it still provides an output.
- ideas: The generated HLint ideas (warnings, errors, etc.) serialized to JSON.
name: lint
on:
  pull_request:
  push:
    branches:
      - master
      - 'releases/*'
jobs:
  hlint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: 'Set up HLint'
      uses: haskell-actions/hlint-setup@v2
      with:
        version: '3.1.6'
    - name: 'Run HLint'
      uses: haskell-actions/hlint-run@v2
      with:
        path: src/
        fail-on: warning