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, orerror.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): Thehlintbinary path, if not already inPATH.
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