Try caching hie
authorLuke Lau <luke_lau@icloud.com>
Tue, 5 Nov 2019 22:54:28 +0000 (22:54 +0000)
committerLuke Lau <luke_lau@icloud.com>
Tue, 5 Nov 2019 22:54:28 +0000 (22:54 +0000)
.github/workflows/haskell.yml

index 9dabd901ff6831e7c4a4620460456ee75e6282af..0d0a10330eea8ed68776c800cb05901f5378455d 100644 (file)
@@ -1,24 +1,48 @@
 name: Haskell CI
 
 on: [push]
-
 jobs:
   build:
    
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
+
+    env:
+      hieref: 7cf1295a2804a527381331bb7b73d58255721edc
+
+    strategy:
+      matrix:
+        ghc: ['8.6.5']
+        os: [ubuntu-latest, macOS-latest]
 
     steps:
     - uses: actions/checkout@v1
-    - uses: actions/setup-haskell@v1
+    - uses: bubba/setup-haskell@macos-ghcup
       with:
-        ghc-version: '8.6.5'
+        ghc-version: ${{ matrix.ghc }}
         cabal-version: '3.0'
     - run: cabal update
-    - name: Install HIE
+
+    - name: Clone HIE
+      uses: actions/checkout@v1
+      with:
+        repository: haskell/haskell-ide-engine
+        submodules: recurse
+        ref: ${{ env.hieref }}
+        path: haskell-ide-engine
+
+    - name: Cache cabal
+      uses: actions/cache@v1
+      with:
+        path: $HOME/.cabal
+        key: ${{ runner.OS }}-${{ matrix.ghc }}-${{ env.hieref }}
+
+    - name: Build HIE
       run: |
-        pushd $HOME
-        git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
-        cd haskell-ide-engine
+        if [ ! -f $HOME/.cabal/bin/hie ]; then
+            echo "hie is already built"
+            exit 0
+        fi
+        pushd haskell-ide-engine
         cabal install hie
         cabal install hoogle
         export PATH=$PATH:$HOME/.cabal/bin