runs-on: ${{ matrix.os }}
- env:
- hieref: 8582a960dc1ca389734707f821b273b00bae54ab
-
strategy:
+ fail-fast: false
matrix:
- ghc: ['8.6.5', '8.4.4']
- os: [ubuntu-latest, macOS-latest]
+ ghc: ['8.10.1', '8.8.3', '8.6.5', '8.4.4']
+ os: [ubuntu-latest, macOS-latest, windows-latest]
exclude:
- - os: macOS-latest
- ghc: '8.4.4' # fails due to ghc panic
+ - os: windows-latest
+ ghc: '8.8.3' # fails due to segfault
steps:
- - uses: actions/checkout@v1
- - uses: bubba/setup-haskell@macos-ghcup
+ - uses: actions/checkout@v2
+ - uses: actions/setup-haskell@v1.1.1
with:
ghc-version: ${{ matrix.ghc }}
- cabal-version: '3.0'
- - run: cabal update
-
- - name: Clone HIE
- uses: actions/checkout@v1
- with:
- repository: haskell/haskell-ide-engine
- submodules: recursive
- ref: ${{ env.hieref }}
- path: haskell-ide-engine
+ cabal-version: '3.2'
- name: Cache Cabal
- uses: actions/cache@v1.1.0
+ uses: actions/cache@v1.2.0
with:
path: ~/.cabal
- key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-${{ env.hieref }}
- restore-keys: |
- ${{ runner.OS }}-${{ matrix.ghc }}-cabal
-
- - name: Cache Hoogle
- uses: actions/cache@v1.1.0
- with:
- path: ~/.hoogle
- key: ${{ runner.OS }}-${{ matrix.ghc }}-hoogle-${{ env.hieref }}
+ key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-0
- - name: Build HIE
- run: |
- pushd ../haskell-ide-engine
- cabal install hie
- cabal install hoogle
- popd
- - name: Generate hoogle database
- run: |
- if [ -d $HOME/.hoogle ]; then
- echo "hoogle database already built"
- exit 0
- fi
- hoogle generate
- - name: Install JS Language Server
- run: npm install javascript-typescript-langserver
- name: Build
run: cabal build
- name: Test
- run: |
- export PATH=$PATH:$(npm bin)
- cabal test
+ run: cabal test