Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Haskell CI

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
ghc: ['9.2.8', '9.4.5']

steps:
- uses: actions/checkout@v3

- name: Set up Haskell
uses: haskell-actions/setup@v2
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: 'latest'
enable-stack: false

- name: Cache Cabal packages
uses: actions/cache@v3
with:
path: |
~/.cabal/packages
~/.cabal/store
dist-newstyle
key: ${{ runner.os }}-cabal-${{ hashFiles('**/*.cabal') }}
restore-keys: |
${{ runner.os }}-cabal-

- name: Update Cabal index
run: cabal update

- name: Build dependencies
run: cabal build --only-dependencies

- name: Build library and executables
run: cabal build all

- name: Run tests
run: cabal test --test-show-details=direct

- name: Generate documentation
run: cabal haddock --all

- name: Lint with hlint
if: always()
run: |
cabal install hlint
hlint src app test --cpp-define=TEST || true

quality:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Haskell
uses: haskell-actions/setup@v2
with:
ghc-version: '9.4.5'
cabal-version: 'latest'

- name: Check code formatting
run: |
cabal install fourmolu
fourmolu --check $(find src app test -name '*.hs') || true

- name: Cabal check
run: cabal check
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
test/
dist-newstyle/
Loading
Loading