Use copying on windows
[lsp-test.git] / .travis.yml
1 language: c
2 sudo: false
3
4 os:
5 - linux
6 - osx
7 - windows
8
9 dist: xenial
10
11 ghc:
12 - 8.6.5
13 cabal: '2.4'
14
15 cache:
16   directories:
17   - "$HOME/.cabal"
18   - "$HOME/.ghc"
19   - "$HOME/haskell-ide-engine/dist-newstyle"
20   - "dist-newstyle"
21
22 addons:
23   apt:
24     sources:
25     - sourceline: ppa:hvr/ghc
26     packages:
27     - npm
28     - ghc-8.6.5
29     - cabal-install-2.4
30   homebrew:
31     packages:
32     - ghc
33     - cabal-install
34     - npm
35     update: true
36
37 before_install:
38 - |
39   if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
40     choco source add -n mistuke -s https://www.myget.org/F/mistuke/api/v2
41     choco install cabal-head -pre
42     choco install ghc nodejs
43     /C/ProgramData/chocolatey/bin/RefreshEnv.cmd
44     export PATH=/C/ProgramData/chocolatey/lib/ghc/tools/ghc-8.6.5/bin:${PATH}
45   fi
46 # these are taken from the haskell language setup
47 - export PATH=/opt/ghc/8.6.5/bin:${PATH}
48 - export PATH=/opt/cabal/2.4/bin:${PATH}
49 - export PATH=$HOME/.cabal/bin:${PATH}
50 - ghc --version
51 - mkdir -p $HOME/haskell-ide-engine
52 - pushd $HOME/haskell-ide-engine
53 - git init
54 - git remote add origin https://github.com/haskell/haskell-ide-engine.git
55 - git pull origin master
56 - git checkout abdb097f39e135deaf321a604c95f16cbda32678
57 - git submodule update --init
58 - cabal v2-update
59 - cabal --version
60 - |
61   if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
62     cabal v2-install hie -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
63   else
64     cabal v2-install hie -j2 --overwrite-policy=always
65   fi
66 - |
67   if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
68     cabal v2-install hoogle -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
69   else
70     cabal v2-install hoogle -j2 --overwrite-policy=always
71   fi
72 - hoogle generate
73 - popd
74 # needs to be old-install for cabal-helper to find it
75 - cabal install Cabal --constraint "Cabal == 2.4.1.0"
76 - npm update
77 - npm i -g javascript-typescript-langserver
78
79 install:
80 - cabal v2-build
81 script:
82 # until cabal v2-test supports streaming results
83 - cabal v2-run lsp-test:test:tests
84
85 deploy:
86   - provider: hackage
87     username: bubba
88     password:
89       secure: M95r2TETDB9ndhqV0xCA9XSRw9k3tBj1xgTTAvB9b/aK3198XekZTak24a+etDNeq8cUke8wmWbN7UfBBlXiDmYYK+DfUFj5ilrkNRO+cAHQzx6TQ+yGr4GhTGhu76zA0g9PZLwMoaZdUELdOkNtRDh0EjC/PVMIp84ZKn2hBLJrptkeBbI5XDArd9I6gvu9mEuPjQ595GdHkKQdQJNEDyr1BQ9BwqUxCHj3HbUjkkfpdgujxE93wzj82/HMzGncYxeH5m5YWvK3ayX22cY3ZXK3D6jgZFB/wdp3uGwoUl1HGaVjAl6XbyV0ALMQkGTWOPrfI3HWqOtOcs349poMckDFseG1LmTXtWa3cG+8bcdzZtCbbo4pLu57e6DULivmvOw64R/tPPUx/evBRhstYVevYLrN0hJLwP3jWYl4BheHSCoDsv8cTFPaNYI/f0LgHF2NaUNBK89pOiR8kmue7oGoCUF/gBRKgqswG0xEji0YvkSIfPV/7qmfL2uoLFCZ/YpMQ8F80KjxsaA5qA3ktt0fVj14QNtsHl4+Qkwj5dtalre2zw5eHyZTe8svlD9Fp4pBaHMuazLDDyv/Aor4JYfInlfIR6oTtn6ty09eX0KjA2OhFi4hE4/jClt6ASDm3Dfv7bnFJJEBQLxfwFcQCFmAsI0EyUrAFmLON07hsm4=
90     on:
91       tags: true  
92       branch: master
93       repo: bubba/lsp-test
94   - provider: github
95     api_key:
96       secure: JKjHWJ/ikW15Y/ZfnlREUeTj2Nw+QHzuc7yC3Bw+AOYQo8gKLCpZiN2iqPaw9xJifGoadutLaKKl2SSup7sZ8CGNW5brttqtGEgxJZci+rjR/b/5RHlyOM10RUg4rwKE0oRo8qXpbRuw6x8cWsREjworMBewZCyF6ToUuTzzMaHqvE/mxwIxoW3b30Xt+TytD6rRlbk/MNiRSZpJeA1TyNiPmpGTqSBc8LBhh8H3IOaZDL3bxlENTEuTJFW67vCQSsoH4/9JKeJ/M3WiwBVza4CTTMfQAxijYOqVGqYcoFtqMXDv4q+IhnBVSYpVo24Ii7zS2I4uQsWDNf5mdtUmfF5MJh9kKRnlp8464VWcLeRWJNsJMz09+rFiUQnl8ovPiu6bwv6GCwsBLzrYdrMx4w/F8FMuB05DsORPWqAcGjSw94seIJcTRTEZg8MbFswNSNptMIf0/PPYDAzoxpAmmS8kigJBL0ymw/QrPgyVKz1hiN2u/OOxmkjM0mrSB2fUGKghyHg0MGIIS8bx6H/pFuX7/WmuQHcUbk5Z6S64YXrb2Vqb3l6Ua0Tz7uwRWrWI8YyTb7KMyhAeYChK5zEWlMBIAv7T602qFJWerU+Eor4lLJmd7CunUah3voPJ4JL8LhhOcVlrWpke+1S+JB6LPOTjQZTjxN3qeR9uGMdl/Zk=
97     draft: true
98     on:
99       tags: true
100       branch: master
101       repo: bubba/lsp-test