Check for hie already existing
[lsp-test.git] / .github / workflows / haskell.yml
index 53827ca27f8f334701613b953ff2c10aa8c95053..f7e11706f6197c33cdab48287a7cb7d2ce51c403 100644 (file)
@@ -1,18 +1,21 @@
 name: Haskell CI
 
-on: [push]
+on: [push, pull_request]
 jobs:
   build:
    
     runs-on: ${{ matrix.os }}
 
     env:
-      hieref: cd0d1eb88334c359b8a220f2aebec703d66012ff
+      hieref: 8582a960dc1ca389734707f821b273b00bae54ab
 
     strategy:
       matrix:
-        ghc: ['8.6.5']
+        ghc: ['8.6.5', '8.4.4']
         os: [ubuntu-latest, macOS-latest]
+        exclude:
+          - os: macOS-latest
+            ghc: '8.4.4' # fails due to ghc panic
 
     steps:
     - uses: actions/checkout@v1
@@ -25,32 +28,33 @@ jobs:
     - name: Clone HIE
       uses: actions/checkout@v1
       with:
-        repository: mpickering/haskell-ide-engine
+        repository: haskell/haskell-ide-engine
         submodules: recursive
         ref: ${{ env.hieref }}
         path: haskell-ide-engine
 
-    - name: Cache Cabal
-    #   uses: actions/cache@v1
-      with:
-        path: ~/.cabal
-    #     key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-${{ hashFiles('../**/*.cabal') }}
-        restore-keys: |
-          ${{ runner.OS }}-${{ matrix.ghc }}-cabal
+    - name: Cache Cabal
+      uses: actions/cache@v1.1.0
+      with:
+        path: ~/.cabal
+        key: ${{ runner.OS }}-${{ matrix.ghc }}-cabal-${{ env.hieref }}
+        restore-keys: |
+          ${{ runner.OS }}-${{ matrix.ghc }}-cabal
 
     - name: Build HIE
       run: |
-        if [ -e $HOME/.cabal/bin/hie ]; then
-            echo "hie is already built"
-            exit 0
-        fi
+        if [ -e $HOME/.cabal/bin/hie ]; then
+            echo "hie is already built"
+            exit 0
+        fi
         pushd ../haskell-ide-engine
         cabal install hie
         cabal install hoogle
-        hoogle generate
         popd
+    - name: Generate hoogle database
+      run: hoogle generate
     - name: Install JS Language Server
-      run: npm install -g javascript-typescript-langserver
+      run: npm install javascript-typescript-langserver
     - name: Build
       run: cabal build
     - name: Test