diff --git a/.travis.yml b/.travis.yml index 1c3fae4da40bc..83727fde686db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,32 @@ language: cpp -os: - - linux - - osx -env: - - ARCH="i686" - - ARCH="x86_64" -sudo: required -dist: trusty -services: docker +sudo: false matrix: - exclude: - - os: osx + include: + - os: linux env: ARCH="i686" + addons: + apt: + packages: + - binutils:i386 + - gcc:i386 + - g++:i386 + - make:i386 + - cpp:i386 + - libssl-dev:i386 + - gfortran:i386 + - os: linux + env: ARCH="x86_64" + addons: + apt: + packages: + - gfortran + - os: osx + env: ARCH="x86_64" +cache: + directories: + - $TRAVIS_BUILD_DIR/deps/srccache + - $TRAVIS_BUILD_DIR/deps/build-i686 + - $TRAVIS_BUILD_DIR/deps/build-x86_64 notifications: email: false irc: @@ -25,11 +40,10 @@ notifications: - http://julia.mit.edu:8000/travis-hook before_install: - make check-whitespace - - if [ $(uname) = Linux ]; then + - if [ `uname` = "Linux" ]; then contrib/travis_fastfail.sh || exit 1; BUILDOPTS="-j3 VERBOSE=1 FORCE_ASSERTIONS=1"; - DOCKERRUN="sudo docker run -w /home/julia-$ARCH tkelman/julia32-part2:master"; - elif [ $(uname) = Darwin ]; then + elif [ `uname` = "Darwin" ]; then brew update; brew install -v jq; contrib/travis_fastfail.sh || exit 1; @@ -41,30 +55,25 @@ before_install: for lib in LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND LIBGIT2; do export BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1"; done; - DOCKERRUN=""; 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 - - make -C moreutils mispipe script: - - | - moreutils/mispipe "$DOCKERRUN bash -lc \ - \"if [ $TRAVIS_PULL_REQUEST = false ]; then git fetch origin $TRAVIS_BRANCH: ; else \ - git fetch origin +refs/pull/$TRAVIS_PULL_REQUEST/merge: ; fi && \ - git checkout -qf FETCH_HEAD && \ - make $BUILDOPTS -C base version_git.jl.phony && \ - make $BUILDOPTS NO_GIT=1 JULIA_SYSIMG_BUILD_FLAGS='--output-ji ../usr/lib/julia/sys.ji' prefix=/tmp/julia install && \ - 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 .. && rm -rf julia* && \ - 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()' && \ - 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 libgit2-online pkg\" \ - " 'moreutils/ts -s "%.s"' + - if [ -e deps/build-$ARCH ]; then mv deps/build-$ARCH deps/build; 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 libgit2-online pkg + - cd `dirname $TRAVIS_BUILD_DIR` && mv julia2 julia && mv julia/deps/build julia/deps/build-$ARCH # uncomment the following if failures are suspected to be due to the out-of-memory killer -# - sudo dmesg +# - dmesg