Explicitly specify copy 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 --ignore-dependencies
43     choco install nodejs
44     /C/ProgramData/chocolatey/bin/RefreshEnv.cmd
45     export PATH=/C/ProgramData/chocolatey/lib/ghc/tools/ghc-8.6.5/bin:${PATH}
46   fi
47 # these are taken from the haskell language setup
48 - export PATH=/opt/ghc/8.6.5/bin:${PATH}
49 - export PATH=/opt/cabal/2.4/bin:${PATH}
50 - export PATH=$HOME/.cabal/bin:${PATH}
51 - ghc --version
52 - mkdir -p $HOME/haskell-ide-engine
53 - pushd $HOME/haskell-ide-engine
54 - git init
55 - git remote add origin https://github.com/haskell/haskell-ide-engine.git
56 - git pull origin master
57 - git checkout abdb097f39e135deaf321a604c95f16cbda32678
58 - git submodule update --init
59 - cabal v2-update
60 - cabal --version
61 - |
62   if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
63     cabal v2-install hie -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
64   else
65     cabal v2-install hie -j2 --overwrite-policy=always
66   fi
67 - |
68   if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
69     cabal v2-install hoogle -j2 --overwrite-policy=always --install-method=copy --installdir=~/.cabal/bin
70   else
71     cabal v2-install hoogle -j2 --overwrite-policy=always
72   fi
73 - hoogle generate
74 - popd
75 # needs to be old-install for cabal-helper to find it
76 - cabal install Cabal --constraint "Cabal == 2.4.1.0"
77 - npm update
78 - npm i -g javascript-typescript-langserver
79
80 install:
81 - cabal v2-build
82 script:
83 # until cabal v2-test supports streaming results
84 - cabal v2-run lsp-test:test:tests
85
86 deploy:
87   - provider: hackage
88     username: bubba
89     password:
90       secure: M95r2TETDB9ndhqV0xCA9XSRw9k3tBj1xgTTAvB9b/aK3198XekZTak24a+etDNeq8cUke8wmWbN7UfBBlXiDmYYK+DfUFj5ilrkNRO+cAHQzx6TQ+yGr4GhTGhu76zA0g9PZLwMoaZdUELdOkNtRDh0EjC/PVMIp84ZKn2hBLJrptkeBbI5XDArd9I6gvu9mEuPjQ595GdHkKQdQJNEDyr1BQ9BwqUxCHj3HbUjkkfpdgujxE93wzj82/HMzGncYxeH5m5YWvK3ayX22cY3ZXK3D6jgZFB/wdp3uGwoUl1HGaVjAl6XbyV0ALMQkGTWOPrfI3HWqOtOcs349poMckDFseG1LmTXtWa3cG+8bcdzZtCbbo4pLu57e6DULivmvOw64R/tPPUx/evBRhstYVevYLrN0hJLwP3jWYl4BheHSCoDsv8cTFPaNYI/f0LgHF2NaUNBK89pOiR8kmue7oGoCUF/gBRKgqswG0xEji0YvkSIfPV/7qmfL2uoLFCZ/YpMQ8F80KjxsaA5qA3ktt0fVj14QNtsHl4+Qkwj5dtalre2zw5eHyZTe8svlD9Fp4pBaHMuazLDDyv/Aor4JYfInlfIR6oTtn6ty09eX0KjA2OhFi4hE4/jClt6ASDm3Dfv7bnFJJEBQLxfwFcQCFmAsI0EyUrAFmLON07hsm4=
91     on:
92       tags: true  
93       branch: master
94       repo: bubba/lsp-test
95   - provider: github
96     api_key:
97       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=
98     draft: true
99     on:
100       tags: true
101       branch: master
102       repo: bubba/lsp-test