Explicitly specify copy on windows
[lsp-test.git] / .travis.yml
index 95e25efee788ae41134ba91c3c8b2d91169424fc..3f113ef4224a03d1b9ae3900dc02bee0aff25157 100644 (file)
@@ -1,4 +1,4 @@
-language: haskell
+language: c
 sudo: false
 
 os:
@@ -21,22 +21,58 @@ cache:
 
 addons:
   apt:
+    sources:
+    - sourceline: ppa:hvr/ghc
     packages:
     - npm
+    - ghc-8.6.5
+    - cabal-install-2.4
+  homebrew:
+    packages:
+    - ghc
+    - cabal-install
+    - npm
+    update: true
 
 before_install:
-- export PATH=$HOME/.cabal/bin:$PATH
+- |
+  if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
+    choco source add -n mistuke -s https://www.myget.org/F/mistuke/api/v2
+    choco install cabal-head -pre
+    choco install ghc --ignore-dependencies
+    choco install nodejs
+    /C/ProgramData/chocolatey/bin/RefreshEnv.cmd
+    export PATH=/C/ProgramData/chocolatey/lib/ghc/tools/ghc-8.6.5/bin:${PATH}
+  fi
+# these are taken from the haskell language setup
+- export PATH=/opt/ghc/8.6.5/bin:${PATH}
+- export PATH=/opt/cabal/2.4/bin:${PATH}
+- export PATH=$HOME/.cabal/bin:${PATH}
+- ghc --version
 - mkdir -p $HOME/haskell-ide-engine
-- cd $HOME/haskell-ide-engine
+- pushd $HOME/haskell-ide-engine
 - git init
 - git remote add origin https://github.com/haskell/haskell-ide-engine.git
 - git pull origin master
 - git checkout abdb097f39e135deaf321a604c95f16cbda32678
 - git submodule update --init
-- cabal v2-install hie -j2 --overwrite-policy=always
-- cabal v2-install hoogle -j2 --overwrite-policy=always
+- cabal v2-update
+- cabal --version
+- |
+  if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
+    cabal v2-install hie -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
+  else
+    cabal v2-install hie -j2 --overwrite-policy=always
+  fi
+- |
+  if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
+    cabal v2-install hoogle -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
+  else
+    cabal v2-install hoogle -j2 --overwrite-policy=always
+  fi
 - hoogle generate
-- cd $TRAVIS_BUILD_DIR
+- popd
+# needs to be old-install for cabal-helper to find it
 - cabal install Cabal --constraint "Cabal == 2.4.1.0"
 - npm update
 - npm i -g javascript-typescript-langserver
@@ -44,6 +80,7 @@ before_install:
 install:
 - cabal v2-build
 script:
+# until cabal v2-test supports streaming results
 - cabal v2-run lsp-test:test:tests
 
 deploy: