forked from exercism/haskell
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
49 lines (39 loc) · 1.65 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
sudo: false # Use the container-based infrastructure.
addons:
apt:
packages:
- libgmp-dev # Stack's GHC depends on this.
cache:
timeout: 600 # The cache is too big to upload in 180 seconds.
directories:
- $HOME/.stack # Global stack's cache.
- $HOME/.foldercache # Per exercise `.stack-work` cache.
env:
- RESOLVER="lts-8.21" CURRENT="YES" # Equal to each stack.yaml.
- RESOLVER="nightly" # Latest nightly snapshot.
matrix:
allow_failures: # The snapshot `nightly` is just an alias to
- env: RESOLVER="nightly" # the newest version released. We don't want
fast_finish: true # Travis to fail on new incompatible releases.
before_install:
- mkdir -p ${HOME}/bin # Create folder for stack.
- export PATH="${HOME}/bin:$PATH" # For stack
- export PATH="${TRAVIS_BUILD_DIR}/bin:$PATH" # For {,fetch-}configlet.
install:
- travis_retry fetch-configlet
- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 -o pack.tgz
- tar xzf pack.tgz --wildcards --strip-components=1 -C ${HOME}/bin '*/stack'
- stack --resolver ${RESOLVER} --install-ghc install hlint
script:
- |
set -e
configlet lint . # Check basic track configuration.
hlint ${TRAVIS_BUILD_DIR} # Run `hlint` on the entire repository.
# Explicit set exercises' resolver only if it's not the current one.
if [ "${CURRENT}" != "YES" ]; then
export SET_RESOLVER="--resolver ${RESOLVER}"
fi
for exercise in ${TRAVIS_BUILD_DIR}/exercises/*/ ; do
bin/test-stub $exercise
bin/test-all-examples $exercise
done