on master help sign in
Merge pull request #3300 from melted/travis_osx
645da8aNiklas Larsson
.travis.yml+23−7
@@ -21,6 +21,9 @@ addons:
21
21
22matrix:
22matrix:
23 include:
23 include:
24+ - os: osx
25+ env: CABALVER="1.24" GHCVER="8.0.1" TESTS="test_c"
26+ compiler: ": #GHC 8.0.1"
24 - env: CABALVER="1.20" GHCVER="7.6.3" TESTS="test_c"
27 - env: CABALVER="1.20" GHCVER="7.6.3" TESTS="test_c"
25 # separate caches for different compiler versions
28 # separate caches for different compiler versions
26 # until https://github.com/travis-ci/travis-ci/issues/4393 is resolved
29 # until https://github.com/travis-ci/travis-ci/issues/4393 is resolved
@@ -51,26 +54,40 @@ before_cache:
51
54
52before_install:
55before_install:
53 - unset CC
56 - unset CC
57+ - if [[ $TRAVIS_OS_NAME == 'linux' ]];
58+ then
54− - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH
59+ export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.cabal/bin:$PATH;
60+ export SED=sed;
61+ export ZCAT=zcat;
62+ fi
55 - env
63 - env
64+ - if [[ $TRAVIS_OS_NAME == 'osx' ]];
65+ then
66+ brew update; brew install ghc; brew install cabal-install;
67+ brew install libffi; brew install pkg-config; brew install cppcheck;
68+ brew install 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
56
74
57install:
75install:
58 - cabal --version
76 - cabal --version
59 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
77 - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
60 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
78 - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];
61 then
79 then
62− zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
80+ $ZCAT $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >
63− $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
81+ $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
64 fi
82 fi
65 - travis_retry cabal update -v
83 - travis_retry cabal update -v
66 # Run build with 2 parallel jobs
84 # Run build with 2 parallel jobs
67 # The container environment reports 16 cores,
85 # The container environment reports 16 cores,
68 # causing cabal's default configuration (jobs: $ncpus)
86 # causing cabal's default configuration (jobs: $ncpus)
69 # to run into the GHC #9221 bug which can result in longer build-times.
87 # to run into the GHC #9221 bug which can result in longer build-times.
70− - sed -i -r 's/(^jobs:).*/\1 2/' $HOME/.cabal/config
88+ - $SED -i -r 's/(^jobs:).*/\1 2/' $HOME/.cabal/config
71 - cabal install -f FFI --only-dependencies --enable-tests --dry -v > installplan.txt
89 - cabal install -f FFI --only-dependencies --enable-tests --dry -v > installplan.txt
72− - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
90+ - $SED -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt
73−
74 # check whether current requested install-plan matches cached package-db snapshot
91 # check whether current requested install-plan matches cached package-db snapshot
75 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
92 - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;
76 then
93 then
@@ -84,7 +101,6 @@ install:
84 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
101 mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;
85 cabal install -f FFI --only-dependencies --enable-tests;
102 cabal install -f FFI --only-dependencies --enable-tests;
86 fi
103 fi
87−
88 # snapshot package-db on cache miss
104 # snapshot package-db on cache miss
89 - if [ ! -d $HOME/.cabsnap ];
105 - if [ ! -d $HOME/.cabsnap ];
90 then
106 then
CHANGELOG.md+1
@@ -34,6 +34,7 @@
34## Miscellaneous updates
34## Miscellaneous updates
35
35
36* The test suite now uses [tasty-golden](https://hackage.haskell.org/package/tasty-golden). New tests must be registered in `test/TestData.hs`, as explained in the relevant `README.md`.
36* The test suite now uses [tasty-golden](https://hackage.haskell.org/package/tasty-golden). New tests must be registered in `test/TestData.hs`, as explained in the relevant `README.md`.
37+* Added OSX and Windows continous integration with Travis and Appveyor.
37
38
38# New in 0.12:
39# New in 0.12:
39
40