Travis: Try to integrate windows configuration
authorJoachim Breitner <mail@joachim-breitner.de>
Thu, 15 Oct 2015 21:45:37 +0000 (21:45 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Thu, 15 Oct 2015 21:45:37 +0000 (21:45 +0000)
.travis.yml

index a707c74..29367d5 100644 (file)
@@ -5,6 +5,7 @@ env:
  - CABALVER=1.18 GHCVER=7.8.4
  - CABALVER=1.22 GHCVER=7.10.2
  - CABALVER=head GHCVER=head  # see section about GHC HEAD snapshots
+ - WINDOWS=yes
 
 matrix:
   allow_failures:
@@ -12,32 +13,43 @@ matrix:
 
 # Note: the distinction between `before_install` and `install` is not important.
 before_install:
- - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
- - travis_retry sudo apt-get update
- - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER # see note about happy/alex
- - travis_retry sudo apt-get install libxss-dev
+ - if [ "$WINDOWS" != yes ]; then export W=wine; else export W=""; fi
+ - [ "$WINDOWS" = yes ] || travis_retry sudo add-apt-repository -y ppa:hvr/ghc
+ - [ "$WINDOWS" = yes ] || travis_retry sudo apt-get update
+ - [ "$WINDOWS" = yes ] || travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER # see note about happy/alex
+ - [ "$WINDOWS" = yes ] || travis_retry sudo apt-get install libxss-dev
+ - [ "$WINDOWS" != yes ]  || sudo add-apt-repository -y ppa:pipelight/stable
+ - [ "$WINDOWS" != yes ]  || sudo apt-get update
+ - [ "$WINDOWS" != yes ]  || sudo apt-get install --install-recommends wine-staging wine-staging-compat xvfb
+ - [ "$WINDOWS" != yes ]  || wget https://github.com/fpco/minghc/releases/download/2015-10-15/minghc-7.10.2-i386.exe
+ - [ "$WINDOWS" != yes ]  || wine minghc-7.10.2-i386.exe /S
+ - [ "$WINDOWS" != yes ]  || wine cabal --version
+ - [ "$WINDOWS" != yes ]  || wine cabal update
  - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
 
 install:
- - cabal --version
- - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- - travis_retry cabal update
- - cabal install --only-dependencies --enable-tests --enable-benchmarks
+ - [ "$WINDOWS" = yes ] || cabal --version
+ - [ "$WINDOWS" = yes ] || echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
+ - [ "$WINDOWS" = yes ] || travis_retry cabal update
+ - [ "$WINDOWS" = yes ] || cabal install --only-dependencies --enable-tests --enable-benchmarks
+ - [ "$WINDOWS" != yes ]  || wget http://sourceforge.net/projects/gnuwin32/files/pcre/7.0/pcre-7.0.exe/download -O pcre-7.0.exe
+ - [ "$WINDOWS" != yes ]  || xvfb-run -a wine ./pcre-7.0.exe /VERYSILENT
+ - [ "$WINDOWS" != yes ]  || test -d ~/".wine/drive_c/Program Files (x86)/GnuWin32/include"
+ - [ "$WINDOWS" != yes ]  || cp ~/".wine/drive_c/Program Files (x86)/GnuWin32/bin/"*.dll .
+ - [ "$WINDOWS" != yes ]  || wine cabal install --only-dependencies --enable-tests --enable-benchmarks --extra-include-dirs='C:\Program Files (x86)\GnuWin32\include' --extra-lib-dirs='C:\Program Files (x86)\GnuWin32\lib'
 
-# Here starts the actual work to be performed for the package under test; any command which exits with a non-zero exit code causes the build to fail.
 script:
- - if [ -f configure.ac ]; then autoreconf -i; fi
- - cabal configure --enable-tests --enable-benchmarks -v2  # -v2 provides useful information for debugging
- - cabal build   # this builds all libraries and executables (including tests/benchmarks)
- - cabal test
- - cabal check
- - cabal sdist   # tests that a source-distribution can be generated
+ - $W cabal configure --enable-tests --enable-benchmarks -v2
+ - $W cabal build
+ - $W cabal test
+ - $W cabal check
+ - $W cabal sdist
 
 # The following scriptlet checks that the resulting source distribution can be built & installed
  - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
    cd dist/;
    if [ -f "$SRC_TGZ" ]; then
-      cabal install --force-reinstalls "$SRC_TGZ";
+      $W cabal install --force-reinstalls "$SRC_TGZ";
    else
       echo "expected '$SRC_TGZ' not found";
       exit 1;