on master help sign in
Idris-dev/.travis.yml
176 lines 6.8 kB history raw
1dist: xenial
3language: c
5env:
6 global:
7 - PKGNAME=idris
9matrix:
10 include:
11 - env: CABALVER="2.4" GHCVER="8.6.5" STACKVER="15.4" STYLISH=YES
12 addons: {apt: {packages: [cabal-install-2.4,ghc-8.6.5,hscolour], sources: [hvr-ghc]}}
13 - env: CABALVER="2.4" GHCVER="8.2.2" TESTS="lib_doc doc"
14 compiler: ": #GHC 8.2.2"
15 addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2,cppcheck,hscolour], sources: [hvr-ghc]}}
16 - env: CABALVER="2.4" GHCVER="8.2.2" TESTS="test_js"
17 compiler: ": #GHC 8.2.2"
18 addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2,cppcheck,hscolour], sources: [hvr-ghc]}}
19 - env: CABALVER="2.4" GHCVER="8.2.2" TESTS="test_c"
20 compiler: ": #GHC 8.2.2"
21 addons: {apt: {packages: [cabal-install-2.4,ghc-8.2.2,cppcheck,hscolour], sources: [hvr-ghc]}}
22 - env: CABALVER="2.4" GHCVER="8.4.4" TESTS="lib_doc doc"
23 compiler: ": #GHC 8.4.4"
24 addons: {apt: {packages: [cabal-install-2.4,ghc-8.4.4,cppcheck,hscolour], sources: [hvr-ghc]}}
25 - env: CABALVER="2.4" GHCVER="8.4.4" TESTS="test_js"
26 compiler: ": #GHC 8.4.4"
27 addons: {apt: {packages: [cabal-install-2.4,ghc-8.4.4,cppcheck,hscolour], sources: [hvr-ghc]}}
28 - env: CABALVER="2.4" GHCVER="8.4.4" TESTS="test_c"
29 compiler: ": #GHC 8.4.4"
30 addons: {apt: {packages: [cabal-install-2.4,ghc-8.4.4,cppcheck,hscolour], sources: [hvr-ghc]}}
31 - env: CABALVER="3.0" GHCVER="8.8.3" TESTS="lib_doc doc"
32 compiler: ": #GHC 8.8.3"
33 addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.3,cppcheck,hscolour], sources: [hvr-ghc]}}
34 - env: CABALVER="3.0" GHCVER="8.8.3" TESTS="test_js"
35 compiler: ": #GHC 8.8.3"
36 addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.3,cppcheck,hscolour], sources: [hvr-ghc]}}
37 - env: CABALVER="3.0" GHCVER="8.8.3" TESTS="test_c"
38 compiler: ": #GHC 8.8.3"
39 addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.3,cppcheck,hscolour], sources: [hvr-ghc]}}
40 - env: CABALVER="3.0" GHCVER="8.8.3" IDRIS2=YES
41 addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.3], sources: [hvr-ghc]}}
42 fast-finish: true
44cache:
45 directories:
46 - $HOME/.cabsnap
47 - $HOME/.cabal/packages
48 - $HOME/.stack
50before_cache:
51 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
52 - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
54before_install:
55 - nvm install 6
56 - nvm use 6
57 - unset CC
58 - if [[ $TRAVIS_OS_NAME == 'linux' ]];
59 then
60 export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$HOME/opt/scheme/bin/:$PATH;
61 export SED=sed;
62 export ZCAT=zcat;
63 fi
64 - env
65 - if [[ $TRAVIS_OS_NAME == 'osx' ]];
66 then
67 brew outdated pkgconfig || brew install pkgconfig;
68 brew install ghc cabal-install libffi cppcheck gnu-sed;
69 export PATH=$HOME/.cabal/bin:$PATH;
70 export SED=gsed;
71 export ZCAT=gzcat;
72 export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig:$PKG_CONFIG_PATH;
73 fi
74 - if [ -n "$STYLISH" ]; then ./stylize.sh; exit $?; fi
75 - if [ -n "$IDRIS2" ];
76 then
77 git clone https://github.com/edwinb/Idris2 &&
78 wget https://github.com/cisco/ChezScheme/archive/v9.5.2.tar.gz &&
79 tar xvzf v9.5.2.tar.gz &&
80 cd ChezScheme-9.5.2 &&
81 ./configure --threads --installprefix=$HOME/opt/scheme &&
82 make -j install &&
83 cd .. &&
84 cabal v1-update &&
85 travis_wait cabal v1-install &&
86 cd Idris2 &&
87 make idris2 && make base && make contrib;
88 exit $?;
89 fi
91install:
92 - which cabal
93 - which ghc
94 - cabal --version
95 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
96 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
97 then
98 $ZCAT $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
99 $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
100 fi
101 - travis_retry cabal update -v
102 # Run build with 2 parallel jobs
103 # The container environment reports 16 cores,
104 # causing cabal's default configuration (jobs: $ncpus)
105 # to run into the GHC #9221 bug which can result in longer build-times.
106 - $SED -i -r 's/(^jobs:).*/\1 2/' $HOME/.cabal/config
107 - cabal v1-install -f FFI --only-dependencies --enable-tests --dry -v > installplan.txt
108 - $SED -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
109 # check whether current requested install-plan matches cached package-db snapshot
110 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
111 then
112 echo "cabal build-cache HIT";
113 rm -rfv .ghc;
114 cp -a $HOME/.cabsnap/ghc $HOME/.ghc;
115 cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;
116 else
117 echo "cabal build-cache MISS";
118 rm -rf $HOME/.cabsnap;
119 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
120 cabal v1-install -f FFI --only-dependencies --enable-tests;
121 fi
122 # snapshot package-db on cache miss
123 - if [ ! -d $HOME/.cabsnap ];
124 then
125 echo "snapshotting package-db to build-cache";
126 mkdir $HOME/.cabsnap;
127 cp -a $HOME/.ghc $HOME/.cabsnap/ghc;
128 cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;
129 fi
132before_script:
133 - ORIGINAL_DIR=$(pwd)
134 - cabal v1-sdist
135 - cd ..
136 - tar -xf ${ORIGINAL_DIR}/dist/${PKGNAME}*.tar.gz
137 - cd ${PKGNAME}*
138script:
139 - export LD_PRELOAD=/opt/ghc/${GHCVER}/lib/ghc-${GHCVER}/rts/libffi.so.7
140###
141 - echo 'Configure...' && echo -en 'travis_fold:start:script.configure\\r'
142 - cabal v1-configure -f FFI -f CI --enable-tests
143 - echo -en 'travis_fold:end:script.configure\\r'
144###
145 - echo 'Build...' && echo -en 'travis_fold:start:script.build\\r'
146 - cabal v1-build
147 - echo -en 'travis_fold:end:script.build\\r'
148###
149 - echo 'Copy...' && echo -en 'travis_fold:start:script.copy\\r'
150 - cabal v1-copy
151 - echo -en 'travis_fold:end:script.copy\\r'
152###
153 - echo 'Register...' && echo -en 'travis_fold:start:script.register\\r'
154 - cabal v1-register
155 - echo -en 'travis_fold:end:script.register\\r'
156###
157 - echo 'Cppcheck...' && echo -en 'travis_fold:start:script.cppcheck\\r'
158 - if [[ "$TESTS" == "test_c" ]]; then
159 cppcheck -i 'mini-gmp.c' rts;
160 fi
161 - echo -en 'travis_fold:end:script.cppcheck\\r'
162###
163 - echo 'Tests...' && echo -en 'travis_fold:start:script.tests\\r'
164 - for test in $TESTS; do
165 echo "make TEST-JOBS=2 $test";
166 travis_wait make TEST-JOBS=2 $test;
167 done
168 - echo -en 'travis_fold:end:script.tests\\r'
169###
170 - echo 'Benchmarks...' && echo -en 'travis_fold:start:script.benchmarks\\r'
171 - if [[ "$TESTS" == "test_c" ]]; then
172 cd benchmarks && ./build.pl && ./run.pl && cd ..;
173 fi
174 - echo -en 'travis_fold:end:script.benchmarks\\r'
175###
176# EOF