Revision 6d4566b95b1a32cc8b79b15ffce22d202159f29e authored by Stefan Karpinski on 06 December 2018, 17:19:33 UTC, committed by Stefan Karpinski on 06 December 2018, 17:19:33 UTC
1 parent 5cbbed3
.travis.yml
language: cpp
sudo: required
dist: trusty
matrix:
include:
- os: linux
env: ARCH="i686"
compiler: "g++-5 -m32"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- ccache
- libssl1.0.0
- bar
- time
- binutils
- gcc-5
- g++-5
- gcc-5-multilib
- g++-5-multilib
- make:i386
- libssl-dev:i386
- gfortran-5
- gfortran-5-multilib
- os: linux
env: ARCH="x86_64"
compiler: "g++-5 -m64"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- ccache
- libssl1.0.0
- bar
- time
- g++-5
- gfortran-5
- os: osx
env: ARCH="x86_64"
osx_image: xcode8
cache: ccache
branches:
only:
- master
- /^release-.*/
- /^v\d+\.\d+\.\d+$/
notifications:
email: false
before_install:
- make check-whitespace
- if [ `uname` = "Linux" ]; then
contrib/travis_fastfail.sh || exit 1;
mkdir -p $HOME/bin;
ln -s /usr/bin/gcc-5 $HOME/bin/gcc;
ln -s /usr/bin/g++-5 $HOME/bin/g++;
ln -s /usr/bin/gfortran-5 $HOME/bin/gfortran;
ln -s /usr/bin/gcc-5 $HOME/bin/x86_64-linux-gnu-gcc;
ln -s /usr/bin/g++-5 $HOME/bin/x86_64-linux-gnu-g++;
gcc --version;
BAR="bar -i 30";
BUILDOPTS="-j5 VERBOSE=1 FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1 USECCACHE=1";
echo "override ARCH=$ARCH" >> Make.user;
sudo sh -c "echo 0 > /proc/sys/net/ipv6/conf/lo/disable_ipv6";
export JULIA_CPU_THREADS=4;
export JULIA_TEST_MAXRSS_MB=1200;
TESTSTORUN="all";
elif [ `uname` = "Darwin" ]; then
brew update;
brew install -v jq pv ccache;
export PATH="$(brew --prefix ccache)/libexec:$PATH";
BAR="pv -i 30";
contrib/travis_fastfail.sh || exit 1;
brew tap staticfloat/julia > /dev/null;
brew rm --force $(brew deps --HEAD julia);
brew install -v ccache gcc gmp mpfr pcre2 staticfloat/julia/openblas-julia staticfloat/julia/suite-sparse-julia staticfloat/juliadeps/libgfortran;
BUILDOPTS="-j3 USECLANG=1 USECCACHE=1 BINARYBUILDER_TRIPLET=x86_64-apple-darwin14 BINARYBUILDER_LLVM_ASSERTS=1";
BUILDOPTS="$BUILDOPTS USE_BINARYBUILDER_LLVM=1 LLVM_CONFIG=$TRAVIS_BUILD_DIR/usr/tools/llvm-config LLVM_SIZE=$TRAVIS_BUILD_DIR/usr/tools/llvm-size";
BUILDOPTS="$BUILDOPTS VERBOSE=1 USE_BLAS64=0 SUITESPARSE_INC=-I$(brew --prefix suite-sparse-julia)/include FORCE_ASSERTIONS=1";
BUILDOPTS="$BUILDOPTS LIBBLAS=-lopenblas LIBBLASNAME=libopenblas LIBLAPACK=-lopenblas LIBLAPACKNAME=libopenblas";
for lib in SUITESPARSE BLAS LAPACK GMP MPFR LIBUNWIND; do
BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
done;
export LDFLAGS="-L$(brew --prefix openblas-julia)/lib -L$(brew --prefix suite-sparse-julia)/lib";
spawn_DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/lib:/usr/lib";
spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix openblas-julia)/lib";
spawn_DYLD_FALLBACK_LIBRARY_PATH+=":$(brew --prefix suite-sparse-julia)/lib";
export JULIA_MACOS_SPAWN="DYLD_FALLBACK_LIBRARY_PATH=\"$spawn_DYLD_FALLBACK_LIBRARY_PATH\" \$1";
export BUILDOPTS="$BUILDOPTS spawn=\$(JULIA_MACOS_SPAWN)";
make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make;
export JULIA_CPU_THREADS=2;
export JULIA_TEST_MAXRSS_MB=600;
TESTSTORUN="all --skip linalg/triangular subarray"; fi # TODO: re enable these if possible without timing out
- echo "override JULIA_CPU_TARGET=generic;native" >> Make.user
- wget http://http.debian.net/debian/pool/main/m/moreutils/moreutils_0.62.orig.tar.xz
- tar -xJvf moreutils_0.62.orig.tar.xz && mv moreutils-0.62 moreutils
script:
- echo BUILDOPTS=$BUILDOPTS
- export BUILDOPTS
# compile / install dependencies
- contrib/download_cmake.sh
- make -C moreutils mispipe
- make $BUILDOPTS -C base version_git.jl.phony
# capture the log, but only print it if `make deps` fails
# try to show the end of the log first, because this log might be very long (> 4MB)
# and thus be truncated by travis
- moreutils/mispipe "make \$BUILDOPTS NO_GIT=1 -C deps 2> deps-err.log" "$BAR" > deps.log ||
{ echo "-- deps build log stderr tail 100 --------------------------------------";
tail -n 100 deps-err.log;
echo "-- deps build log stdout tail 100 --------------------------------------";
tail -n 100 deps.log;
echo "-- deps build log stderr all -------------------------------------------";
cat deps-err.log;
echo "-- deps build log stdout all -------------------------------------------";
cat deps.log;
echo "-- end of deps build log -----------------------------------------------";
false; }
# compile / install Julia
- make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia release | moreutils/ts -s "%.s"
- make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia install | moreutils/ts -s "%.s"
- make $BUILDOPTS NO_GIT=1 build-stats
- du -sk /tmp/julia/*
- ls -l /tmp/julia/lib
- ls -l /tmp/julia/lib/julia
- FILES_CHANGED=$(git diff --name-only $TRAVIS_COMMIT_RANGE -- || git ls-files)
- cd .. && mv julia julia2
# run tests
- /tmp/julia/bin/julia --sysimage-native-code=no -e 'true'
# - /tmp/julia/bin/julia-debug --sysimage-native-code=no -e 'true'
- /tmp/julia/bin/julia -e 'Base.require(Main, :InteractiveUtils).versioninfo()'
- pushd /tmp/julia/share/julia/test
# skip tests if only files within the "doc" dir have changed
- if [ $(echo "$FILES_CHANGED" | grep -cv '^doc/') -gt 0 ]; then
/tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl LibGit2/online Pkg/pkg download; fi
- popd
# test that the embedding code works on our installation
- mkdir /tmp/embedding-test &&
make check -C /tmp/julia/share/julia/test/embedding \
JULIA="/tmp/julia/bin/julia" \
BIN=/tmp/embedding-test \
"$(cd julia2 && make print-CC)"
# restore initial state and prepare for travis caching
- mv julia2 julia &&
rm -f julia/deps/scratch/libgit2-*/CMakeFiles/CMakeOutput.log
# run the LLVM tests on Linux
- if [ `uname` = "Linux" ]; then
pushd julia && make -C test/llvmpasses && popd; fi
# run the doctests on Linux 64-bit
- if [ `uname` = "Linux" ] && [ $ARCH = "x86_64" ]; then
pushd julia && make -C doc doctest=true && popd; fi
# uncomment the following if failures are suspected to be due to the out-of-memory killer
# - dmesg
after_success:
- if [ `uname` = "Linux" ] && [ $ARCH = "x86_64" ]; then
cd julia && make -C doc deploy; fi
Computing file changes ...