forked from brainflow-dev/brainflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.travis.yml
More file actions
208 lines (196 loc) · 15.1 KB
/
Copy path.travis.yml
File metadata and controls
208 lines (196 loc) · 15.1 KB
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
sudo: required
dist: bionic
os:
- linux
- osx
osx_image: xcode9.4
services:
- docker
env:
global:
- secure: yVhN4PaIpLMKJdUGckSghbC6biQjZrKiVulcA/xloFHgCe/MJgdpqlZmIuruKPEi95sf6yC7Trcg9NlPgIDJwAlQxBggMdsSG50Kkej/JG1sW59BDm51x6ajHgWLDDAQXW4z5OflCx3o87j7apXHP0bk6RcIrisgms6ndN5I8T0T2lTy3MBwQgTa1MsP36dpPHLygCoHSTzS877jK8dKKV270P1QivuDoWNYoypE3FTVMs8hxOFklw1EnRgD9GIDe6msIwA0NOZkZa2qhC7AL5zrqiAOrFj5fE4I7B2q0YwQ4S308pXRIqfPKIciMrZh/jNYG9GxHVPuH0f4coE9Xyde/sUauQXEW625jcARAPXkqIWTxcSB9J+gOuScDQzFIIHlJ/MqS2Cp1podoBvhrcuFS8blXy2ay7BTPFb5Ju2jkxcHQ3BfN/ZFV1O10HVpsvgk+cucwfjTSvkqyaKgrHAX/lWtzsJ6OuBb5NhAsko6/v+JKi5f0IsbT4d2MI6Xf7mjfIJQlrslCShWTtPKYfy/WjCOfh0tbx53ScAL6F0Q8Hv9wtOHxTKXssEskVyVNrqY5wiFaOiImfL/NTWiPwPz4rSlu4dssZHZuyKRi5PlTHy1lqEkWvJx4v9uc2abHethJsCqtPnbfw8GTnr/8vhKuVjWfVuQgihw6Y8pcqk=
- secure: SFqSIIcMJFiQVaRaHYwfmDNuchJjSN5gzAycFODAVL42H1MIGJ0LOkfs3GazWlopLENqeTP0Q0Ai5xN8gpxxbLNpyAJtAxd628cHKaiyd+oeCh9nStOiOT7YhfSK++uqIFlr6Eya3yzzPvCoJEWc2CpHrZDV49nrEbeWRH57jMtQtmnn3qXz4GMPptkyPBrE7VGaNx9eFH4glvM7cNdN02aiZZMdJFk6OfJMlaymh1IQwXHSmxEXG5k3GZbxPgAvOT7KqDBxQbUg6y9VXviB48d1obpIJsPS+RmDyCD2F0gcdLVHTNCgIWd+EBXa0H6za/LEdGH3xO8COLumjGxOtbo05MPn45FvczEbQrkuoz46ZA7DkUJsinzNNkiwFKI82RmWXPjmNfItCgd2VMnWfYuMl/Q4hL48GG4s6t+TtvuhtNfoBKANHtnRM3z4wA0N0KMR1WWIhoDOcLkzhy8Fir3JE1hX7WrbUgltC8Vk93beTWnNg8BmALZjeplzvCN4sKdLVEtTD2N6P+w97EOPTPywq1lITyqe51JriC70MpI4SuHklZc/lvfsGaREtJ4FLJ5miJxtKaIyKKccZxNMKf0E2SDJyVopYldvE1+USsPk3ZrD5SEUHZtfQM0UCNuJ+Kwn7uBcQkGnlBlK6/EMIdWifATBQUsLR3YjoBlZZzM=
language: java
addons:
apt:
packages:
- maven
- python3
- python3-setuptools
- python3-pip
- python-pygments
# - r-base
- libxml2-dev
- valgrind
- cppcheck
# R disabled. It's taking up too much time in CI
# homebrew:
# packages:
# - r
# update: true
install:
- sudo pip3 install --upgrade pip
- sudo pip3 install cmake==3.13.3
- sudo -H pip3 install --upgrade setuptools wheel virtualenv
- sudo -H pip3 install $TRAVIS_BUILD_DIR/emulator
- sudo -H pip3 install awscli
# R disabled. It's taking up too much time in CI
# # install required packages for R
# - sudo -H R --vanilla -e 'install.packages("knitr", repos="http://cran.us.r-project.org")'
# - sudo -H R --vanilla -e 'install.packages("reticulate", repos="http://cran.us.r-project.org")'
before_script:
# need to build in manylinux docker container!
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
docker pull dockcross/manylinux-x64 ;
fi
# for all tests except C++ we need libraries built inside docker and we need them for production
# for C++ test we need libs to be compiled in the same env as test
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
cd $TRAVIS_BUILD_DIR && mkdir build_outside && cd build_outside && cmake -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/installed -DCMAKE_BUILD_TYPE=Release .. && sudo -H make && make install;
fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
docker run -e TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR -v $TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR dockcross/manylinux-x64 /bin/bash -c "/opt/python/cp36-cp36m/bin/pip3.6 install cmake==3.13.3 && cd $TRAVIS_BUILD_DIR && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/installed_docker -DCMAKE_BUILD_TYPE=Release .. && make && make install" ;
fi
# build for mac
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
cd $TRAVIS_BUILD_DIR && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/installed -DCMAKE_BUILD_TYPE=Release .. && make -j && make install ;
fi
- sudo -H pip3 install $TRAVIS_BUILD_DIR/python-package
- sudo -H pip3 install -r $TRAVIS_BUILD_DIR/tests/python/requirements.txt
# R disabled. It's taking up too much time in CI
# - cd $TRAVIS_BUILD_DIR/r-package/brainflow && sudo -H R CMD build . && sudo -H R CMD INSTALL brainflow_0.0.0.9000.tar.gz
- cd $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo && mkdir build && cd build && cmake -DCMAKE_PREFIX_PATH=$TRAVIS_BUILD_DIR/installed .. && make -j
- cd $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo && mkdir build && cd build && cmake -DCMAKE_PREFIX_PATH=$TRAVIS_BUILD_DIR/installed .. && make -j
- cd $TRAVIS_BUILD_DIR && cd java-package/brainflow && mvn package
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
cp $TRAVIS_BUILD_DIR/java-package/brainflow/target/classes/brainflow/*.so $TRAVIS_BUILD_DIR/java-package/brainflow/target/classes/ ;
fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
cp $TRAVIS_BUILD_DIR/java-package/brainflow/target/classes/brainflow/*.dylib $TRAVIS_BUILD_DIR/java-package/brainflow/target/classes/ ;
fi
script:
# static analyzer
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
cd $TRAVIS_BUILD_DIR && cppcheck --xml --xml-version=2 --force src cpp-package third_party 2>cppcheck_res.xml && cppcheck-htmlreport --title=BrainFlow --file=cppcheck_res.xml --report-dir=report ;
fi
# tests for boards
# tests for cyton
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 0 --serial-port
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 0 --streamer-params file://file_streamer.csv:w --serial-port
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_multiboard_get_data.py --log --board-id 0 --serial-port
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 0 --serial-port
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 0 --serial-port ;
fi
# tests for synthetic board
- python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id -1 --streamer-params file://$TRAVIS_BUILD_DIR/test.csv:w
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id -1
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id -1;
fi
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.BrainFlowGetData" -Dexec.args="--board-id -1"
# R disabled. It's taking up too much time in CI
# - Rscript $TRAVIS_BUILD_DIR/tests/r/brainflow_get_data.R
# tests for cyton daisy
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 2 --serial-port
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 2 --serial-port
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/cyton_linux.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 2 --serial-port ;
fi
# tests for novaxr
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/novaxr_udp.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --board-id 3 --ip-address 127.0.0.1 --log
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/novaxr_udp.py $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 3 --ip-address 127.0.0.1
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/novaxr_udp.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 3 --ip-address 127.0.0.1 ;
fi
# tests for wifi shield, fails on macos due to an issue in emulator
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/wifi_shield_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 4 --ip-address 127.0.0.1 --ip-port 17982 ;
fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/wifi_shield_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 5 --ip-address 127.0.0.1 --ip-port 17983 ;
fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/wifi_shield_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id 6 --ip-address 127.0.0.1 --ip-port 17984 ;
fi
# tests for streaming board
- python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/streaming_board_emulator.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --log --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --other-info -1
- python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/streaming_board_emulator.py $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --other-info -1
- if [ `which valgrind` ]; then
python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/streaming_board_emulator.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id -2 --ip-address 225.1.1.1 --ip-port 6677 --other-info -1 ;
fi
# tests for playback board
# use file from run above
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --other-info -1 --file $TRAVIS_BUILD_DIR/test.csv --board-id -3;
fi
# test for fascia
- sudo -H python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/fascia_emulator_ci.py python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_get_data.py --board-id 12 --ip-port 7789
- if [ `which valgrind` ]; then
python3 $TRAVIS_BUILD_DIR/emulator/brainflow_emulator/fascia_emulator_ci.py valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/get_data_demo/build/brainflow_get_data --board-id 12 --ip-port 7789 ;
fi
# tests for signal processing
# python
- python3 $TRAVIS_BUILD_DIR/tests/python/denoising.py
- python3 $TRAVIS_BUILD_DIR/tests/python/serialization.py
- python3 $TRAVIS_BUILD_DIR/tests/python/signal_filtering.py
- python3 $TRAVIS_BUILD_DIR/tests/python/transforms.py
- python3 $TRAVIS_BUILD_DIR/tests/python/downsampling.py
- python3 $TRAVIS_BUILD_DIR/tests/python/brainflow_to_mne.py
- python3 $TRAVIS_BUILD_DIR/tests/python/band_power.py
- python3 $TRAVIS_BUILD_DIR/tests/python/band_power_all.py
# C++
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/denoising
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/downsampling
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/signal_filtering
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/serialization
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/transforms
- LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/band_power
# valgrind tests
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/denoising ;
fi
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/downsampling ;
fi
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/signal_filtering ;
fi
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/serialization ;
fi
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/transforms ;
fi
- if [ `which valgrind` ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRAVIS_BUILD_DIR/installed/lib valgrind --error-exitcode=1 --leak-check=full $TRAVIS_BUILD_DIR/tests/cpp/signal_processing_demo/build/band_power ;
fi
# java
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.Denoising"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.Downsampling"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.Serialization"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.SignalFiltering"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.Transforms"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.BandPower"
- cd $TRAVIS_BUILD_DIR/java-package/brainflow && mvn exec:java -Dexec.mainClass="brainflow.examples.BandPowerAll"
after_success:
# push libraries from docker!
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
aws s3 cp $TRAVIS_BUILD_DIR/installed_docker/lib/ s3://brainflow/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then
aws s3 cp $TRAVIS_BUILD_DIR/installed/lib/ s3://brainflow/$TRAVIS_COMMIT/$TRAVIS_OS_NAME --recursive ;
fi
# push results of static analyzer
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
aws s3 cp $TRAVIS_BUILD_DIR/report s3://brainflow-artifacts/$TRAVIS_COMMIT/report --recursive ;
fi
# notify that everything is ok
- echo success > ${TRAVIS_OS_NAME}_success && aws s3 cp ${TRAVIS_OS_NAME}_success s3://brainflow/$TRAVIS_COMMIT/
after_failure:
# notify Appveyor of travis test failure
echo failure > ${TRAVIS_OS_NAME}_failure && aws s3 cp ${TRAVIS_OS_NAME}_failure s3://brainflow/$TRAVIS_COMMIT/
notifications:
email:
on_success: never
on_failure: always