-
Notifications
You must be signed in to change notification settings - Fork 751
/
Copy path.travis.yml
222 lines (215 loc) · 10.8 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
env:
global:
- secure: "meC6CCyHs3V+r6BQU4ZddvNJ/9PjAS0iZBEgEENTS3ERLlbQDK88SC3lneI59q/PQPXpuInpn87VEEzljdyZHu7EE4uYxqdS3nQohWcRkkF95Y4LQseXxgvaaEQXaVVC1/10b1r8g1pOrPPgvpHW+/UA7lxpfDJwUyyLVG2TTc8BNcoJxRhdrAHbCheOYP/GkfvBQeT+jqW/+FBQhBMReS66X3isosZ4OmMSB1ed711uIr/e25UikV17AfZ5hyJ3F3+JxBgpVa9glPYyR4/yIvnHQM+Uwb8SoxVneaZ0kVFGl5jNfnrI8DSmoqkVCcA3YSpDILnwz+QFBwN3zhdRX5vGbyKTa4xthCCJlxRyvKle1ldCaIKh1EujvfryndoQtEolk/idwluV2Ic3QgsliUECe+yCX42hYzZBwYi38lnY1AQJ3HKazC7jSzmY31qwEBGHnSQytiPgxLGIHEB1QKo+qX+BLCLLAHorqSybwO2UGlBRhNDI5pa874Q2mf/DXGSDaGUMNNzRQEK9TbtS/RgCSudbuuZ2IeiGi/9Xh1A1u8/EL6KfHXIW7TDJB9OIrZPXexCmM467dhS74TJph21dj+45IamQr2xScaDxgN5xhQ0Yu+/o+hRzdaM6qukjN+3x0tJ0I6dj8N3jM6Pl2lm+YD7/pNrtbxaNG7B8M0k="
- secure: "IsAnYe1kTcfuHkGoDz7HFPcPdY+bmqJFoQZX/8hl6b2sTO5lG1iLmDyZ5NSNxAPGAVzGny/44CVn+w25ITTJ4e8XiSQhClQV33FlEpy7Gxl6TnkaK0k/XvEAgp5MuEnaco2uh5DKEZEJ6NHqrUvoQx+2GFq3WvK8cBfdXH2C+povI+XDgygg5P4hhwzlA9bm1smPTalEEyKshfwuptgMbRAxkLrWCpta3IxuRupgLNxVXER7faHTmW3+JZ1CZop2zDRyZMiFkQnLaR32Mhuj35dyzxY19tRxdGOkfSGFrYD2C8teIdbRidvZqckgmBzKsCAgDBpWM1EI/lU2wjnCY6itrlkK4pqRGxjdUfuganI0JQq72OX/mGZRgcX0Nm/52C3xszMFMi4mGB944H8rF3mX8FfS7ecT4c2R5m/RIEBaNg2iqA27hBgp/kKfVU8SCbb2ushBQCDuXmknfG7JGuzg56+Gkx29P6hD9MHaj/WeSZaAQHcN5wo3+ZGqNZbEXW22uA3DV+/rXRJXLqvI1EvgaIsojaKj262uwkAAU46A9IgeOuPSP0RejkXctOGxIvCi3W6b7nOeUGlH1nsjoLMonndXO2kjIh9fj+7P214XMWg9HCkDryCFmHugRPAZVfEnP5O+oT0Qm3FejQgFkBzOfWaV6w3601s/s5qJUh0="
addons:
artifacts:
s3_region: "us-east-1"
paths:
- $(ls ./buildlogs/*| tr "\n" ":")
debug: true
language: java
sudo: required
dist: trusty
services:
- docker
matrix:
include:
- jdk: oraclejdk7
os: linux
env: PROJ=flycapture OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=artoolkitplus OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=opencv,chilitags,flandmark,openblas,mxnet,hdf5,caffe OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=cuda OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=ffmpeg OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=fftw OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=gsl OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=leptonica,tesseract OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=libdc1394 OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=liquidfun OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=libfreenect OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=libfreenect2 OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=llvm OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=tensorflow OS=linux-x86_64
- jdk: oraclejdk7
os: linux
env: PROJ=videoinput OS=linux-x86_64
- os: osx
env: PROJ=artoolkitplus OS=macosx-x86_64
- os: osx
env: PROJ=opencv,chilitags,flandmark,openblas,mxnet,hdf5,caffe OS=macosx-x86_64
- os: osx
env: PROJ=cuda OS=macosx-x86_64
- os: osx
env: PROJ=ffmpeg OS=macosx-x86_64
- os: osx
env: PROJ=fftw OS=macosx-x86_64
- os: osx
env: PROJ=gsl OS=macosx-x86_64
- os: osx
env: PROJ=leptonica,tesseract OS=macosx-x86_64
- os: osx
env: PROJ=libdc1394 OS=macosx-x86_64
- os: osx
env: PROJ=libfreenect OS=macosx-x86_64
- os: osx
env: PROJ=libfreenect2 OS=macosx-x86_64
- os: osx
env: PROJ=liquidfun OS=macosx-x86_64
- os: osx
env: PROJ=llvm OS=macosx-x86_64
- os: osx
env: PROJ=tensorflow OS=macosx-x86_64
- os: osx
env: PROJ=videoinput OS=macosx-x86_64
before_install:
#maybe this needs to go into new first job
- mkdir ./buildlogs
- git clone https://github.com/bytedeco/javacpp.git
- cd javacpp
- mvn install -l javacppBuild.log -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
- cd ..
- export PYTHON_BIN_PATH=$(which python) # For tensorflow
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then export JAVA_HOME=$(/usr/libexec/java_home); fi
- |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
if [ "$OS" == "linux-x86" ]; then
sudo dpkg --add-architecture i386
sudo apt-get update
fi
if [ "$OS" == "linux-x86_64" ]; then
echo "starting docker"
docker run --privileged -d -ti -e "container=docker" -v $HOME/.m2/:/root/.m2/ -v $TRAVIS_BUILD_DIR/../:/root/build -v /sys/fs/cgroup:/sys/fs/cgroup nvidia/cuda:8.0-cudnn6-devel-centos7 /usr/sbin/init > /dev/null
DOCKER_CONTAINER_ID=$(docker ps | grep centos | awk '{print $1}')
echo "container id is $DOCKER_CONTAINER_ID please wait while updates applied"
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "yum -y install epel-release" > /dev/null
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "yum -y install clang gcc-c++ gcc-gfortran java-devel maven python numpy swig git file which wget unzip tar bzip2 gzip xz patch make cmake3 libtool perl nasm yasm alsa-lib-devel freeglut-devel glfw-devel gtk2-devel libusb-devel libusb1-devel zlib-devel openblas-devel" > /dev/null
if [ "$PROJ" == "flycapture" ]; then
curl -L -s -X POST --globoff -o $HOME/build/flycap.tar.gz --header "Authorization: Bearer $DROPAUTH" --header 'Dropbox-API-Arg: {"path": "/flycap.tar.gz"}' https://content.dropboxapi.com/2/files/download
tar xzvf $HOME/build/flycap.tar.gz
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "mkdir /usr/include/flycapture; cp /root/build/include/* /usr/include/flycapture; cp /root/build/include/C/* /usr/include/flycapture; cp /root/build/include/lib/* /usr/lib"
fi
if [ "$PROJ" == "tensorflow" ]; then
echo "adding bazel for tensorflow"
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "curl -L https://github.com/bazelbuild/bazel/releases/download/0.4.4/bazel-0.4.4-installer-linux-x86_64.sh -o bazel.sh"
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "bash bazel.sh"
fi
fi
fi
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
echo "performing brew update and install of dependencies, please wait.."
brew update > /dev/null
brew install gcc5 swig bazel libtool libusb nasm yasm xz
ln -s /usr/local/opt/gcc\@5 /usr/local/opt/gcc5
fi
- |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
if [ "$OS" == "linux-x86" ]; then
sudo apt-get install -q -y yasm:i386 nasm:i386 libc6:i386 libncurses5:i386 libstdc++6:i386 gcc-multilib g++-multilib libglib2.0-0:i386 libglib2.0-dev:i386
fi
#sudo apt-get install -q -y libblas-dev
fi
install:
### - ./cppbuild.sh -platform $OS install ${PROJ[@]}
- echo "install"
script:
- |
echo "download dependencies"
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
if [[ "$PROJ" =~ mxnet ]]; then
export PKG_CONFIG_PATH=$TRAVIS_BUILD_DIR/opencv/cppbuild/macosx-x86_64/lib/pkgconfig
fi
if [[ "$PROJ" =~ cuda ]] || [[ "$PROJ" =~ tensorflow ]] || [[ "$PROJ" =~ caffe ]]; then
echo "installing cuda.."
while true; do echo .; sleep 60; done &
export CHILDPID=$!
echo "Child PID $CHILDPID"
#brew install -v Caskroom/cask/cuda; export BREW_STATUS=$?
curl -L https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_mac-dmg -o cuda.dmg
echo "Mount dmg"
hdiutil mount cuda.dmg
sleep 5
ls -ltr /Volumes/CUDAMacOSXInstaller/CUDAMacOSXInstaller.app/Contents/MacOS
sudo /Volumes/CUDAMacOSXInstaller/CUDAMacOSXInstaller.app/Contents/MacOS/CUDAMacOSXInstaller --accept-eula --no-window; export BREW_STATUS=$?
echo "Brew status $BREW_STATUS"
if [ $BREW_STATUS -ne 0 ]; then
echo "Brew Failed"
return $BREW_STATUS
fi
kill $CHILDPID
curl -L -s -X POST --globoff -o cudnn-8.0-osx-x64-v6.0.tgz --header "Authorization: Bearer $DROPAUTH" --header 'Dropbox-API-Arg: {"path": "/cudnn-8.0-osx-x64-v6.0.tgz"}' https://content.dropboxapi.com/2/files/download
tar xvf cudnn-8.0-osx-x64-v6.0.tgz
sudo cp ./cuda/include/cudnn.h /usr/local/cuda/include/cudnn.h
sudo cp ./cuda/lib/libcudnn.6.dylib /usr/local/cuda/lib/libcudnn.6.dylib
sudo cp ./cuda/lib/libcudnn.dylib /usr/local/cuda/lib/libcudnn.dylib
sudo cp ./cuda/lib/libcudnn_static.a /usr/local/cuda/lib/libcudnn_static.a
fi
fi
echo "starting script"
echo "running for $PROJ"
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
DOCKER_CONTAINER_ID=$(docker ps | grep centos | awk '{print $1}')
echo "container id is $DOCKER_CONTAINER_ID"
if [[ "$PROJ" =~ tensorflow ]] || [[ "$PROJ" =~ openblas ]]; then
echo "redirecting log output, tailing log every 5 mins to prevent timeout.."
while true; do echo .; docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "tail -10 /root/build/javacpp-presets/buildlogs/$PROJ.log"; sleep 300; done &
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "cd /root/build/javacpp-presets;mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Djavacpp.platform=$OS -l /root/build/javacpp-presets/buildlogs/$PROJ.log -pl $PROJ"; export BUILD_STATUS=$?
else
docker exec -ti $DOCKER_CONTAINER_ID /bin/bash -xec "cd /root/build/javacpp-presets;mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Djavacpp.platform=$OS -pl $PROJ"; export BUILD_STATUS=$?
fi
echo "Build status $BUILD_STATUS"
if [ $BUILD_STATUS -ne 0 ]; then
echo "Build Failed"
return $BUILD_STATUS
fi
else
if [[ "$PROJ" =~ tensorflow ]] || [[ "$PROJ" =~ openblas ]]; then
echo "redirecting log output, tailing log every 5 mins to prevent timeout.."
while true; do echo .; tail -10 $TRAVIS_BUILD_DIR/buildlogs/$PROJ.log; sleep 300; done &
mvn clean install -Dmaven.javadoc.skip=true -Djavacpp.platform=$OS -l $TRAVIS_BUILD_DIR/buildlogs/$PROJ.log -pl $PROJ; export BUILD_STATUS=$?
#mvn clean install -Dmaven.javadoc.skip=true -Djavacpp.platform=$OS -pl $PROJ; export BUILD_STATUS=$?
#tail -50 ~/build/vb216/javacpp-presets/buildlogs/$PROJ.log
else
echo "Building $PROJ"
mvn clean install -Dmaven.javadoc.skip=true -Djavacpp.platform=$OS -pl $PROJ; export BUILD_STATUS=$?
fi
echo "Build status $BUILD_STATUS"
if [ $BUILD_STATUS -ne 0 ]; then
echo "Build Failed"
return $BUILD_STATUS
fi
fi
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
DOCKER_CONTAINER_ID=$(docker ps | grep centos | awk '{print $1}')
docker stop $DOCKER_CONTAINER_ID
docker rm -v $DOCKER_CONTAINER_ID
fi
cache:
directories:
- $HOME/.m2