forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
138 lines (138 loc) · 5.65 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
language: cpp
sudo: false
dist: trusty
matrix:
include:
- os: linux
env: ARCH="i686"
compiler: "g++ -m32"
addons:
apt:
packages:
- libssl1.0.0
- bar
- time
- gcc-multilib
- g++-multilib
- make:i386
- libssl-dev:i386
- gfortran
- gfortran-multilib
- os: linux
env: ARCH="x86_64"
compiler: "g++ -m64"
addons:
apt:
packages:
- libssl1.0.0
- bar
- time
- gfortran
- 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-.*/
- /^v\d+\.\d+\.\d+$/
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;
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 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
# 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 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
# run tests
- /tmp/julia/bin/julia --precompiled=no -e 'true' &&
/tmp/julia/bin/julia-debug --precompiled=no -e 'true'
- /tmp/julia/bin/julia -e 'versioninfo()'
- pushd /tmp/julia/share/julia/test
- export JULIA_CPU_CORES=2 && export JULIA_TEST_MAXRSS_MB=600 &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl $TESTSTORUN &&
/tmp/julia/bin/julia --check-bounds=yes runtests.jl libgit2-online download pkg
- popd
# test that the embedding code works on our installation
- mkdir /tmp/embedding-test &&
make check -C /tmp/julia/share/doc/julia/examples/embedding \
JULIA="DYLD_FALLBACK_LIBRARY_PATH='$DYLD_FALLBACK_LIBRARY_PATH' /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
# uncomment the following if failures are suspected to be due to the out-of-memory killer
# - dmesg
after_success:
- cd julia && make -C doc deploy