mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-02-18 13:55:48 +01:00
Simplified Travis config
This commit is contained in:
parent
d2f2e1537f
commit
f372f832fa
105
.travis.yml
105
.travis.yml
@ -1,3 +1,10 @@
|
|||||||
|
# This is the simple Travis configuration, which is intended for use
|
||||||
|
# on applications which do not require cross-platform and
|
||||||
|
# multiple-GHC-version support. For more information and other
|
||||||
|
# options, see:
|
||||||
|
#
|
||||||
|
# https://docs.haskellstack.org/en/stable/travis_ci/
|
||||||
|
#
|
||||||
# Copy these contents into the root directory of your Github project in a file
|
# Copy these contents into the root directory of your Github project in a file
|
||||||
# named .travis.yml
|
# named .travis.yml
|
||||||
|
|
||||||
@ -10,100 +17,24 @@ language: c
|
|||||||
# Caching so the next build will be fast too.
|
# Caching so the next build will be fast too.
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.ghc
|
|
||||||
- $HOME/.cabal
|
|
||||||
- $HOME/.stack
|
- $HOME/.stack
|
||||||
|
|
||||||
# The different configurations we want to test. We have BUILD=cabal which uses
|
# Ensure necessary system libraries are present
|
||||||
# cabal-install, and BUILD=stack which uses Stack. More documentation on each
|
addons:
|
||||||
# of those below.
|
apt:
|
||||||
#
|
packages:
|
||||||
# We set the compiler values here to tell Travis to use a different
|
- libgmp-dev
|
||||||
# cache file per set of arguments.
|
|
||||||
#
|
|
||||||
# If you need to have different apt packages for each combination in the
|
|
||||||
# matrix, you can use a line such as:
|
|
||||||
# addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
# The Stack builds. We can pass in arbitrary Stack arguments via the ARGS
|
|
||||||
# variable, such as using --stack-yaml to point to a different file.
|
|
||||||
- env: BUILD=stack ARGS=""
|
|
||||||
compiler: ": #stack default"
|
|
||||||
addons: {apt: {packages: [ghc-7.10.3], sources: [hvr-ghc]}}
|
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
# Using compiler above sets CC to an invalid value, so unset it
|
|
||||||
- unset CC
|
|
||||||
|
|
||||||
# We want to always allow newer versions of packages when building on GHC HEAD
|
|
||||||
- CABALARGS=""
|
|
||||||
- if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi
|
|
||||||
|
|
||||||
# Download and unpack the stack executable
|
# Download and unpack the stack executable
|
||||||
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:/opt/alex/$ALEXVER/bin:/opt/happy/$HAPPYVER/bin:$HOME/.cabal/bin:$PATH
|
|
||||||
- mkdir -p ~/.local/bin
|
- mkdir -p ~/.local/bin
|
||||||
- |
|
- export PATH=$HOME/.local/bin:$PATH
|
||||||
if [ `uname` = "Darwin" ]
|
- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||||
then
|
|
||||||
travis_retry curl --insecure -L https://www.stackage.org/stack/osx-x86_64 | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
|
|
||||||
else
|
|
||||||
travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use the more reliable S3 mirror of Hackage
|
|
||||||
mkdir -p $HOME/.cabal
|
|
||||||
echo 'remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/' > $HOME/.cabal/config
|
|
||||||
echo 'remote-repo-cache: $HOME/.cabal/packages' >> $HOME/.cabal/config
|
|
||||||
|
|
||||||
if [ "$CABALVER" != "1.16" ]
|
|
||||||
then
|
|
||||||
echo 'jobs: $ncpus' >> $HOME/.cabal/config
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the list of packages from the stack.yaml file
|
|
||||||
- PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@')
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
|
# Build dependencies
|
||||||
- if [ -f configure.ac ]; then autoreconf -i; fi
|
- stack --no-terminal --install-ghc test --only-dependencies
|
||||||
- |
|
|
||||||
set -ex
|
|
||||||
case "$BUILD" in
|
|
||||||
stack)
|
|
||||||
# Avoid an out-of-memory condition
|
|
||||||
stack --no-terminal --install-ghc $ARGS build haskell-src-exts
|
|
||||||
|
|
||||||
stack --no-terminal --install-ghc $ARGS test --bench --only-dependencies
|
|
||||||
;;
|
|
||||||
cabal)
|
|
||||||
cabal --version
|
|
||||||
travis_retry cabal update
|
|
||||||
cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
set +ex
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- |
|
# Build the package, its tests, and its docs and run the tests
|
||||||
set -ex
|
- stack --no-terminal test --haddock --no-haddock-deps
|
||||||
case "$BUILD" in
|
|
||||||
stack)
|
|
||||||
stack --no-terminal $ARGS test --bench --no-run-benchmarks --haddock --no-haddock-deps
|
|
||||||
;;
|
|
||||||
cabal)
|
|
||||||
cabal install --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES
|
|
||||||
|
|
||||||
ORIGDIR=$(pwd)
|
|
||||||
for dir in $PACKAGES
|
|
||||||
do
|
|
||||||
cd $dir
|
|
||||||
cabal check || [ "$CABALVER" == "1.16" ]
|
|
||||||
cabal sdist
|
|
||||||
SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && \
|
|
||||||
(cd dist && cabal install --force-reinstalls "$SRC_TGZ")
|
|
||||||
cd $ORIGDIR
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
set +ex
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user