name: Haskell CI
-on: [push]
-
+on: [push, pull_request]
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ ghc: ['8.10.1', '8.8.3', '8.6.5', '8.4.4']
+ os: [ubuntu-latest, macOS-latest, windows-latest]
+ exclude:
+ - os: windows-latest
+ ghc: '8.8.3' # fails due to segfault
steps:
- - uses: actions/checkout@v1
- - name: Install dependencies
- run: cabal install --only-dependencies --enable-tests
- - name: Install HIE
- run: |
- pushd $HOME
- git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
- cd haskell-ide-engine
- cabal v2-install hie
- cabal v2-install hoogle
- hoogle generate
- popd
+ - uses: actions/checkout@v2
+ - uses: actions/setup-haskell@v1.1.4
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: '3.2'
+
+ - name: Cache Cabal
+ uses: actions/cache@v1.2.0
+ with:
+ path: ~/.cabal
+ key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-0
+
- name: Build
- run: cabal v2-build
- - name: Run tests
- run: cabal v2-test
+ run: cabal build
+ - name: Test
+ run: cabal test