-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy path.travis.yml
More file actions
100 lines (89 loc) · 3.45 KB
/
.travis.yml
File metadata and controls
100 lines (89 loc) · 3.45 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
language: generic
# Use the trusty environment, since the netcdf packages in 12.04 are broken
dist: trusty
sudo: required
env:
global:
MPI_IMPL=openmpi
matrix:
- GFORTRAN_VERSION=trusty OPT=FAST
- GFORTRAN_VERSION=trusty OPT=DEBUG
- GFORTRAN_VERSION=4.8 OPT=FAST
- GFORTRAN_VERSION=4.9 OPT=FAST
- GFORTRAN_VERSION=5 OPT=FAST
- GFORTRAN_VERSION=6 OPT=FAST
before_install:
- export TRAVIS_ROOT=$HOME/local
- export MINICONDA=$HOME/miniconda
- mkdir -p $TRAVIS_ROOT/bin
- export PATH="$TRAVIS_ROOT/bin:$PATH"
- export PATH="$MINICONDA/bin:$PATH"
# Install requirements for M.C. Kernel
- |
if [[ "$GFORTRAN_VERSION" == "trusty" ]]; then
sudo apt-get update -qq
sudo apt-get install -qq gfortran libnetcdff5 libnetcdf-dev libfftw3-dev openmpi-bin libopenmpi-dev
else
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
sudo -E apt-get -yq update &>> ~/apt-get-update.log
sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install gfortran-$GFORTRAN_VERSION g++-$GFORTRAN_VERSION
# Install OpenMPI
./TRAVIS/install_mpi.sh $TRAVIS_ROOT $MPI_IMPL $GFORTRAN_VERSION
# Get and install FFTW3
./TRAVIS/install_fftw.sh $TRAVIS_ROOT $GFORTRAN_VERSION
# Get and install NetCDF4
./TRAVIS/install_netcdf.sh $TRAVIS_ROOT $GFORTRAN_VERSION
fi
# Install some python packages that the submit script needs
- ./TRAVIS/install_python.sh
- pip install --user cpp-coveralls
# Get test wavefields (2GB, takes some time)
- ./TRAVIS/get_wavefields.sh
# cd tests/reference_solutions
# tar -xvf test_nonmerged.tar
# tar -xvf test_merged.tar
# cd -
install:
- |
if [[ "$OPT" == "FAST" ]]; then
./copy_templates.sh release
else
./copy_templates.sh
fi
- which mpif90
- mpif90 -show
- mpif90 -v
- sh -c 'sed -i -e "s/NETCDF_PATH = /NETCDF_PATH = $(TRAVIS_ROOT) \#/g" make_mc_kernel.macros'
- make -j
script:
- echo 'Unit tests...' && echo -en 'travis_fold:start:script.1\\r'
- |
make check
cat tests/mckernel_tests.log
- echo -en 'travis_fold:end:script.1\\r'
- echo 'Test make_kerner_input.py...' && echo -en 'travis_fold:start:script.2\\r'
- export PATH="$MINICONDA/bin:$PATH"
- which python
- source activate condaenv;
- python ./UTILS/make_kerner_input.py --nfilter 4 --f0 50 --noplot
- diff receiver.dat tests/ref_make_input/receiver.dat
- diff CMTSOLUTION tests/ref_make_input/CMTSOLUTION
- diff filters.dat tests/ref_make_input/filters.dat
- echo -en 'travis_fold:end:script.2\\r'
- echo 'Test run on nonmerged wavefield files...'
- python ./submit.py -n 3 -i TRAVIS/TEST01/inparam_TEST01 -q foreground TEST01 &> OUTPUT_TEST01
- echo 'Test run on merged wavefield files...'
- python ./submit.py -n 3 -i TRAVIS/TEST02/inparam_TEST02 -q foreground TEST02 &> OUTPUT_TEST02
- echo 'Test run with multiple STFs...'
- python ./submit.py -n 3 -i TRAVIS/TEST03/inparam_TEST03 -q foreground TEST03 &> OUTPUT_TEST03
- echo 'Test resuming and intermediate files'
- python ./submit.py -n 3 -i TRAVIS/TEST04/inparam_TEST04 TEST04 && sleep 30 && killall mc_kernel
- cd ./runs/TEST04 && mpirun -n 3 ./mc_kernel inparam &> ../../OUTPUT_TEST04
- echo 'Test run with wavefield plotting...'
- cd ../.. && python ./submit.py -n 3 -i TRAVIS/TEST05/inparam_TEST05 -q foreground TEST05 &> OUTPUT_TEST05
after_success:
- coveralls --gcov-options '\-lp' -e src/clocks.f90 -e src/kdtree2.f90 -e src/ftnunit.f90
cache:
directories:
- $HOME/local
- $HOME/miniconda