https://github.com/JuliaLang/julia
Raw File
Tip revision: 58c29a6ff0f32602697cd5df9c28ddd0b819ecca authored by Jameson Nash on 30 January 2017, 21:06:52 UTC
inference: tmerge slot-assignment types to preserve Union information for disjoint assignments
Tip revision: 58c29a6
.travis.yml
language: cpp
sudo: false
matrix:
  include:
    - os: linux
      env: ARCH="i686"
      compiler: "g++-5 -m32"
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - 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:
            - bar
            - time
            - g++-5
            - gfortran-5
    - os: osx
      env: ARCH="x86_64"
      osx_image: xcode8
cache:
  directories:
    - $TRAVIS_BUILD_DIR/deps/srccache
    - $TRAVIS_BUILD_DIR/deps/scratch
    - $TRAVIS_BUILD_DIR/deps/usr-staging
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;
        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="-j3 VERBOSE=1 FORCE_ASSERTIONS=1 LLVM_ASSERTIONS=1";
        echo "override ARCH=$ARCH" >> Make.user;
        TESTSTORUN="all";
      elif [ `uname` = "Darwin" ]; then
        brew update;
        brew install -v jq pv;
        BAR="pv -i 30";
        contrib/travis_fastfail.sh || exit 1;
        brew tap staticfloat/julia;
        brew rm --force $(brew deps --HEAD julia);
        brew install -v --only-dependencies --HEAD julia;
        brew install -v staticfloat/juliadeps/libgfortran llvm39-julia;
        BUILDOPTS="-j3 USECLANG=1 LLVM_CONFIG=$(brew --prefix llvm39-julia)/bin/llvm-config LLVM_SIZE=$(brew --prefix llvm39-julia)/bin/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 LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR PCRE LIBUNWIND; do
            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";
        export JULIA_MACOS_SPAWN="DYLD_FALLBACK_LIBRARY_PATH=\"$DYLD_FALLBACK_LIBRARY_PATH\" \$1";
        export BUILDOPTS="$BUILDOPTS spawn=\$(JULIA_MACOS_SPAWN)";
        make $BUILDOPTS -C contrib -f repackage_system_suitesparse4.make;
        TESTSTORUN="all --skip linalg/triangular subarray"; fi # TODO: re enable these if possible without timing out
    - git clone -q git://git.kitenet.net/moreutils
script:
    - echo BUILDOPTS=$BUILDOPTS
    - export BUILDOPTS
    - 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; }
    - make $BUILDOPTS NO_GIT=1 prefix=/tmp/julia install | moreutils/ts -s "%.s"
    - make $BUILDOPTS NO_GIT=1 build-stats
    - du -sk /tmp/julia/*
    - 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
    - /tmp/julia/bin/julia --precompiled=no -e 'true' &&
        /tmp/julia/bin/julia-debug --precompiled=no -e 'true'
    - /tmp/julia/bin/julia -e 'versioninfo()'
    - export JULIA_CPU_CORES=2 && export JULIA_TEST_MAXRSS_MB=600 &&
        cd /tmp/julia/share/julia/test &&
        /tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
        /tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online pkg
    - cd `dirname $TRAVIS_BUILD_DIR` && mv julia2 julia &&
        rm -f julia/deps/scratch/libgit2-*/CMakeFiles/CMakeOutput.log
# uncomment the following if failures are suspected to be due to the out-of-memory killer
#    - dmesg
back to top