language: cpp
sudo: false
matrix:
include:
- os: linux
env: ARCH="i686"
compiler: "g++ -m32"
addons:
apt:
packages:
- bar
- time
- binutils
- gcc
- g++
- gcc-multilib
- g++-multilib
- make:i386
- libssl-dev:i386
- gfortran
- gfortran-multilib
- os: linux
env: ARCH="x86_64"
compiler: "g++ -m64"
addons:
apt:
packages:
- gfortran
- os: osx
env: ARCH="x86_64"
osx_image: xcode7
cache:
directories:
- $TRAVIS_BUILD_DIR/deps-i686
- $TRAVIS_BUILD_DIR/deps-x86_64
branches:
only:
- master
- /release-.*/
notifications:
email: false
irc:
channels:
- "chat.freenode.net#julia-notifications"
on_success: change
on_failure: always
webhooks:
urls:
- http://status.julialang.org/put/travis
- http://julia.mit.edu:8000/travis-hook
before_install:
- make check-whitespace
- if [ `uname` = "Linux" ]; then
contrib/travis_fastfail.sh || exit 1;
BUILDOPTS="-j3 VERBOSE=1 FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1";
if [ "$ARCH" = "i686" ]; then
export BUILDOPTS="$BUILDOPTS MARCH=pentium4";
else
export BUILDOPTS="$BUILDOPTS MARCH=x86-64";
fi;
echo "override ARCH=$ARCH" >> Make.user;
elif [ `uname` = "Darwin" ]; then
brew update;
brew install -v jq;
contrib/travis_fastfail.sh || exit 1;
brew tap staticfloat/julia;
brew rm --force $(brew deps julia);
brew install -v cmake staticfloat/juliadeps/libgfortran;
brew install -v --only-dependencies julia;
BUILDOPTS="-j3 USECLANG=1 LLVM_CONFIG=$(brew --prefix llvm33-julia)/bin/llvm-config-3.3 VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1 STAGE2_DEPS=utf8proc";
BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas";
for lib in LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND LIBGIT2; do
export BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
done;
export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib";
export DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib:$(brew --prefix openblas-julia)/lib:$(brew --prefix suite-sparse-julia)/lib:$(brew --prefix arpack-julia)/lib";
make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make;
fi
- git clone -q git://git.kitenet.net/moreutils
script:
- if [ -n "`ls deps-$ARCH`" ]; then cp -a deps-$ARCH/* deps; fi
- make $BUILDOPTS -C base version_git.jl.phony
- make $BUILDOPTS NO_GIT=1 -C deps > deps.log || cat deps.log
- make $BUILDOPTS NO_GIT=1 JULIA_SYSIMG_BUILD_FLAGS="--output-ji ../usr/lib/julia/sys.ji" prefix=/tmp/julia install | moreutils/ts -s "%.s"
- if [ `uname` = "Darwin" ]; then
for name in suitesparseconfig spqr umfpack colamd cholmod amd suitesparse_wrapper; do
install -pm755 usr/lib/lib${name}*.dylib* /tmp/julia/lib/julia/;
done;
fi
- cd .. && mv julia julia2
- cp /tmp/julia/lib/julia/sys.ji local.ji && /tmp/julia/bin/julia -J local.ji -e 'true' && /tmp/julia/bin/julia-debug -J local.ji -e 'true' && rm local.ji
- /tmp/julia/bin/julia -e 'versioninfo()'
- export JULIA_CPU_CORES=2 && cd /tmp/julia/share/julia/test &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl all &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl pkg
# uncomment the following if failures are suspected to be due to the out-of-memory killer
# - dmesg
before_cache:
- cd `dirname $TRAVIS_BUILD_DIR` && mv julia2 julia && rm -rf julia/deps/julia-env julia/deps/pcre2-*
- case $TRAVIS_PULL_REQUEST-$TRAVIS_BRANCH in
false-master | false-release*)
cd julia && rm -rf deps-$ARCH && mkdir -p deps-$ARCH &&
for i in $(git ls-files -o --directory deps); do
mv $i deps-$ARCH;
done;;
esac