-
Notifications
You must be signed in to change notification settings - Fork 42
/
.travis.yml
85 lines (85 loc) · 4.31 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
language: perl
sudo: true
matrix:
include:
# start the first coverage early so that it starts before everything else
- perl: "5.20"
env: COVERAGE=1
- perl: "5.20"
env: EUMM_BLEAD=1
- perl: "5.20"
env: TEST_INSTALLED=1 # test not from blib but after installing
- perl: "5.10"
- perl: "5.12"
- perl: "5.14"
- perl: "5.16"
- perl: "5.18"
- perl: "blead"
# this is commented out because we test Perl v5.20 under all BADVAL configurations including the default below
#- perl: "5.20"
- perl: "5.20"
env: PDL_WITH_BADVAL=0 # test with badval disabled
- perl: "5.20"
env: PDL_WITH_BADVAL=1 PDL_BADVAL_USENAN=0 PDL_BADVAL_PER_PDL=0
- perl: "5.20"
env: PDL_WITH_BADVAL=1 PDL_BADVAL_USENAN=0 PDL_BADVAL_PER_PDL=1
- perl: "5.20"
env: PDL_WITH_BADVAL=1 PDL_BADVAL_USENAN=1 PDL_BADVAL_PER_PDL=0
- perl: "5.20"
env: PDL_WITH_BADVAL=1 PDL_BADVAL_USENAN=1 PDL_BADVAL_PER_PDL=1
- perl: "5.20"
env: DISABLE_FORTRAN=1 # what if we don't have Fortran installed?
- perl: "5.20"
env: CC="clang" # use `clang` instead of `gcc` default
allow_failures:
- perl: blead
before_install:
- sudo apt-get update
- sudo apt-get install build-essential libx11-dev pgplot5 libplplot-dev libgd2-xpm-dev libhdf4-alt-dev libproj-dev libvpx-dev libxpm-dev proj-bin libcfitsio3-dev libreadline-dev
- if [ "$DISABLE_FORTRAN" != 1 ]; then sudo apt-get install gfortran; fi # set DISABLE_FOTRAN = 1 to not install gfortran
# clang is already installed in Travis-CI environment. Using PERL_MM_OPT does not work with subdirectory Makefile.PLs so we override Config.pm
# Also, both $Config{cc} and $Config{ld} need to be set because under ELF environments (such as Travis-CI's Ubuntu), this is what Perl's Config.pm does.
- if [ "$CC" == "clang" ]; then mkdir build_aux; echo 'package force_clang; use ExtUtils::MakeMaker::Config; $Config{cc} = $Config{ld} = "clang"; 1' > build_aux/force_clang.pm; export PERL5OPT="-I$(pwd)/build_aux -Mforce_clang"; fi
- sudo apt-get install libxi-dev libxmu-dev freeglut3-dev libgsl0-dev libnetpbm10-dev # for OpenGL
- export PGPLOT_DEV=/NULL
- perl -pi -e 's|WITH_BADVAL => 1|WITH_BADVAL => 0| if defined $ENV{PDL_WITH_BADVAL} && $ENV{PDL_WITH_BADVAL} == 0' perldl.conf # disable bad value support
- perl -pi -e 's|BADVAL_USENAN => 0|BADVAL_USENAN => 1| if defined $ENV{PDL_BADVAL_USENAN} && $ENV{PDL_BADVAL_USENAN} == 1' perldl.conf # enable BADVAL_USENAN
- perl -pi -e 's|BADVAL_PER_PDL => 0|BADVAL_PER_PDL => 1| if defined $ENV{PDL_BADVAL_PER_PDL} && $ENV{PDL_BADVAL_PER_PDL} == 1' perldl.conf # enable BADVAL_PER_PDL
- git clone git://github.com/travis-perl/helpers ~/travis-perl-helpers
- ls -lR
- export SPLIT_BUILD=0
- source ~/travis-perl-helpers/init
- build-perl
- perl -V
- cpanm --quiet --notest ExtUtils::F77 Term::ReadLine::Gnu PGPLOT # do not need tests
- cpanm --quiet --notest Devel::CheckLib # specify this now because this is a CONFIGURE_REQUIRES for author-side
- cpanm --force --verbose ExtUtils::ParseXS # we install the latest ExtUtils::ParseXS
- if [ "$EUMM_BLEAD" == 1 ]; then cpanm --quiet --notest --dev ExtUtils::MakeMaker; fi
- build-dist
- cd $BUILD_DIR # $BUILD_DIR is set by the build-dist command
install:
- cpan-install --deps # installs prereqs, including recommends
- cpan-install --coverage # installs coverage prereqs, if enabled
- prove t/00-report-prereqs.t t/01-checkmanifest.t
# SYSTEM_CORES set by travis-perl-helpers
- if [ "$SERIAL_BUILD" == 1 ]; then make; else make -j$(( $SYSTEM_CORES * 2 )); fi
before_script:
- coverage-setup
script:
- export PROVE_FLAG=""; if [ "$TEST_INSTALLED" == 1 ]; then make install clean; mv Basic Basic.x; mv ../Basic ../Basic.x; rm t/01-checkmanifest.t; else PROVE_FLAG="-b -v"; fi # clean is to ensure no blib, mv to ensure doesn't think is in repo!
- if [ "$SERIAL_TESTING" == 1 ]; then prove $PROVE_FLAG $(test-files); else prove --formatter TAP::Formatter::File -j$(test-jobs) $PROVE_FLAG $(test-files); fi
after_script:
- perl -Iblib/lib -MPDL::Config -MData::Dumper -e 'print Dumper \%PDL::Config'
after_success:
- coverage-report
branches:
except:
- /^wip\//
- /^blocked/
only:
- master
notifications:
irc:
channels:
- "irc.perl.org#pdl"
skip_join: true