Skip to content

Commit

Permalink
Merge pull request #13569 from JuliaLang/tk/trustytravis
Browse files Browse the repository at this point in the history
RFC: experimenting with docker containers on Travis
  • Loading branch information
tkelman committed Dec 5, 2015
2 parents 7cb9096 + 111f5e5 commit db3afd7
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 34 deletions.
65 changes: 35 additions & 30 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,32 @@
language: cpp
os:
- linux
- osx
env:
- ARCH="i686"
- ARCH="x86_64"
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:
Expand All @@ -23,29 +41,14 @@ notifications:
before_install:
- make check-whitespace
- if [ `uname` = "Linux" ]; then
sudo apt-get install jq -y;
contrib/travis_fastfail.sh || exit 1;
BUILDOPTS="-j3 USEGCC=1 LLVM_CONFIG=llvm-config-3.3 VERBOSE=1 USE_BLAS64=0 FORCE_ASSERTIONS=1 STAGE2_DEPS=utf8proc";
for lib in LLVM SUITESPARSE ARPACK BLAS FFTW LAPACK GMP MPFR OPENLIBM; do
export BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1";
done;
sudo add-apt-repository ppa:staticfloat/julia-deps -y;
sudo apt-get update -qq -y;
if [ "$ARCH" = "i686" ]; then
export BUILDOPTS="$BUILDOPTS MARCH=pentium4";
sudo apt-get remove libblas3gf liblapack3gf libarmadillo2 -y;
sudo apt-get install binutils:i386 -y;
sudo apt-get install gcc:i386 g++:i386 make:i386 cpp:i386 g++-4.6:i386 gcc-4.6:i386 libssl-dev:i386 patchelf:i386 gfortran:i386 llvm-3.3-dev:i386 libsuitesparse-dev:i386 libopenblas-dev:i386 libopenblas-base:i386 libblas-dev:i386 liblapack-dev:i386 liblapack3:i386 libarpack2-dev:i386 libarpack2:i386 libfftw3-dev:i386 libgmp-dev:i386 libpcre3-dev:i386 libopenlibm-dev:i386 libmpfr-dev:i386 -y;
else
export JULIA_TEST_MAXRSS_MB="500";
sudo apt-get install patchelf gfortran llvm-3.3-dev libsuitesparse-dev libopenblas-dev liblapack-dev libarpack2-dev libfftw3-dev libgmp-dev libpcre3-dev libopenlibm-dev libmpfr-dev -y;
fi;
BUILDOPTS="-j3 VERBOSE=1 FORCE_ASSERTIONS=1";
elif [ `uname` = "Darwin" ]; then
brew tap staticfloat/julia;
brew rm --force $(brew deps --HEAD julia);
brew update;
brew install -v jq;
contrib/travis_fastfail.sh || exit 1;
brew tap staticfloat/julia;
brew rm --force $(brew deps --HEAD julia);
brew install -v --only-dependencies --HEAD 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";
Expand All @@ -56,9 +59,11 @@ before_install:
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 [ -e deps/build-$ARCH ]; then mv deps/build-$ARCH deps/build; fi
- make $BUILDOPTS -C base version_git.jl.phony
- git clone -q git://git.kitenet.net/moreutils
- 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
Expand All @@ -69,6 +74,6 @@ script:
- 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 - && mv julia2 julia
- sudo dmesg
- echo "Ready for packaging..."
- 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
# - dmesg
9 changes: 5 additions & 4 deletions contrib/travis_fastfail.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ curlhdr="Accept: application/vnd.travis-ci.2+json"
endpoint="https://api.travis-ci.org/repos/$TRAVIS_REPO_SLUG"

# Fail fast for superseded builds to PR's
if ! [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
if ! [ \"$TRAVIS_BUILD_NUMBER\" = $(curl -H "$curlhdr" $endpoint/builds?event_type=pull_request | \
jq ".builds | map(select(.pull_request_number == $TRAVIS_PULL_REQUEST))[0].number") ]; then
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
newestbuildforthisPR=$(curl -H "$curlhdr" $endpoint/builds?event_type=pull_request | \
jq ".builds | map(select(.pull_request_number == $TRAVIS_PULL_REQUEST))[0].number")
if [ $newestbuildforthisPR != null -a $newestbuildforthisPR != \"$TRAVIS_BUILD_NUMBER\" ]; then
echo "There are newer queued builds for this pull request, failing early."
exit 1
fi
Expand All @@ -17,7 +18,7 @@ else
master | release*)
;;
*)
if ! [ \"$TRAVIS_BUILD_NUMBER\" = $(curl -H "$curlhdr" \
if [ \"$TRAVIS_BUILD_NUMBER\" != $(curl -H "$curlhdr" \
$endpoint/branches/$TRAVIS_BRANCH | jq ".branch.number") ]; then
echo "There are newer queued builds for this branch, failing early."
exit 1
Expand Down

0 comments on commit db3afd7

Please sign in to comment.