9
9
- MPICH_DIR="$HOME/.local/usr/mpich"
10
10
- MPICH_BOT_URL_HEAD="https://github.com/sourceryinstitute/opencoarrays/files/64308/"
11
11
- MPICH_BOT_URL_TAIL="mpich-3.2.yosemite.bottle.1.tar.gz"
12
- - OSX_PACKAGES="gcc cmake"
13
12
14
13
matrix :
15
14
include :
16
15
- os : osx
17
16
env :
18
17
- BUILD_TYPE="CodeCoverage"
18
+ OSX_PACKAGES="gcc cmake"
19
19
- os : osx
20
20
env :
21
21
- BUILD_TYPE="Release"
22
+ OSX_PACKAGES="gcc cmake"
23
+ - os : osx
24
+ env :
25
+ - BUILD_TYPE="InstallScript"
26
+ OSX_PACKAGES="gcc"
22
27
- os : linux
23
28
sudo : false
24
29
env :
25
30
- BUILD_TYPE="CodeCoverage"
26
31
cache :
27
32
directories :
28
33
- " $CACHE"
29
- - " $HOME/.cache/pip"
30
34
addons :
31
35
apt :
32
36
sources :
@@ -45,7 +49,6 @@ matrix:
45
49
cache :
46
50
directories :
47
51
- " $CACHE"
48
- - " $HOME/.cache/pip"
49
52
addons :
50
53
apt :
51
54
sources :
@@ -57,6 +60,17 @@ matrix:
57
60
- binutils
58
61
- cmake-data
59
62
- cmake
63
+ - os : linux
64
+ sudo : false
65
+ env :
66
+ - BUILD_TYPE="InstallScript"
67
+ addons :
68
+ apt :
69
+ sources :
70
+ - ubuntu-toolchain-r-test
71
+ packages :
72
+ - gcc-5
73
+ - gfortran-5
60
74
61
75
before_install :
62
76
- |
@@ -70,73 +84,97 @@ before_install:
70
84
export CC=gcc-5
71
85
$FC --version
72
86
$CC --version
73
- cmake --version
74
87
fi
75
88
76
89
install :
77
90
- |
78
91
if [[ $TRAVIS ]] && [[ "X$TRAVIS_OS_NAME" = "Xosx" ]]; then
79
- brew update > /dev/null
92
+ brew update > /dev/null
80
93
81
94
for pkg in $OSX_PACKAGES; do
82
95
[[ "$(brew ls --versions $pkg)" ]] || brew install --force-bottle $pkg
83
96
brew outdated $pkg || brew upgrade --force-bottle $pkg
84
97
done
85
98
export FC=gfortran-5
86
99
export CC=gcc-5
87
- if ! [[ "$(brew ls --versions mpich)" ]]; then
100
+ if ! [[ "$(brew ls --versions mpich)" ]] && [[ "X$BUILD_TYPE" != "XInstallScript" ]] ; then
88
101
wget ${MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}
89
102
brew install --force-bottle ${MPICH_BOT_URL_TAIL}
90
103
if ! [[ "$(brew ls --versions mpich)" ]]; then
91
104
brew install --force-bottle mpich
92
105
fi
106
+ mpif90 --version
107
+ mpicc --version
108
+ cmake --version
109
+ export FC=mpif90
110
+ export CC=mpicc
111
+ elif [[ "X$BUILD_TYPE" = "XInstallScript" ]]; then # uninstall some stuff if present
112
+ [[ "$(brew ls --versions cmake)" ]] && brew rm cmake || true
113
+ [[ "$(brew ls --versions mpich)" ]] && brew rm mpich || true
114
+ [[ "$(brew ls --versions openmpi)" ]] && brew rm openmpi || true
93
115
fi
94
- else
116
+ elif [[ "X$BUILD_TYPE" != "XInstallScript" ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
95
117
if ! ( [[ -x "$HOME/.local/bin/mpif90" ]] && [[ -x "$HOME/.local/bin/mpicc" ]] ); then
96
118
# mpich install not cached
97
- if ( [[ $TRAVIS ]] && [[ "X$TRAVIS_BRANCH" == Xbranch-1.* ]] ); then
98
- install_prerequisites/build mpich "$MPICH_VER" "$MPICH_DIR" 4
99
- else
100
- # install_prerequisites/build is broken as of 2015.12.09 / 9d2edbb0 on master
101
- # argument parsing bug fixes haven't made it back into master yet...
102
- wget "${MPICH_URL_HEAD}/${MPICH_URL_TAIL}"
103
- mv "$MPICH_URL_TAIL" "$MPICH_DIR/.."
104
- pushd "$MPICH_DIR/.."
105
- tar -xzvf "$MPICH_URL_TAIL"
106
- cd "${MPICH_URL_TAIL%.tar.gz}"
107
- ./configure --prefix="$MPICH_DIR"
108
- make -j 4
109
- make install
110
- popd
119
+ # could use install_prerequisites/build instead...
120
+ wget "${MPICH_URL_HEAD}/${MPICH_URL_TAIL}"
121
+ mv "$MPICH_URL_TAIL" "$MPICH_DIR/.."
122
+ pushd "$MPICH_DIR/.."
123
+ tar -xzvf "$MPICH_URL_TAIL"
124
+ cd "${MPICH_URL_TAIL%.tar.gz}"
125
+ ./configure --prefix="$MPICH_DIR"
126
+ make -j 4
127
+ make install
128
+ popd
129
+ for f in "$MPICH_DIR/bin/"*; do
130
+ if [[ -x "$f" ]]; then
131
+ ln -fs "$f" "$HOME/.local/bin/${f##*/}" && "${f##*/}" --version
111
132
fi
112
- for f in "$MPICH_DIR/bin/"*; do
113
- if [[ -x "$f" ]]; then
114
- ln -fs "$f" "$HOME/.local/bin/${f##*/}" && "${f##*/}" --version
115
- fi
116
- done
117
- fi
133
+ done
118
134
fi
119
-
120
- before_script :
121
- - mpif90 --version
122
- - export FC=mpif90
123
- - mpicc --version
124
- - export CC=mpicc
125
- - cmake --version
135
+ mpif90 --version
136
+ mpicc --version
137
+ cmake --version
138
+ export FC=mpif90
139
+ export CC=mpicc
140
+ fi
126
141
127
142
script :
128
- - mkdir cmake-build
129
- - cd cmake-build
130
- - cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME/OpenCoarrays" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" ..
131
- - make -j 4
132
- - ctest --verbose
133
- - make install
134
- - cd ..
143
+ - |
144
+ if [[ "X$BUILD_TYPE" = "XInstallScript" ]]; then
145
+ export FC=gfortran-5
146
+ export CC=gcc-5
147
+ [[ -d "$HOME/opt" ]] || mkdir "$HOME/opt"
148
+ [[ -d "$HOME/bin" ]] || mkdir "$HOME/bin"
149
+ ln -fs "$(which gfortran-5)" "$HOME/bin/gfortran"
150
+ ln -fs "$(which gcc-5)" "$HOME/bin/gcc"
151
+ ln -fs "$(which g++-5)" "$HOME/bin/g++"
152
+ export PATH="$PATH:$HOME/bin"
153
+ yes | ./install.sh $HOME/opt/opencoarrays 4 > install.log &
154
+ install_sh_PID=$!
155
+ echo "install.log will be displayed after success or failure"
156
+ while ps -p $install_sh_PID > /dev/null; do
157
+ echo "Still working on installing opencoarrays and dependencies"
158
+ sleep 300 # prevent Travis-CI abort due to inactivity and excessive logging
159
+ done
160
+ else
161
+ mkdir cmake-build
162
+ cd cmake-build
163
+ cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME/OpenCoarrays" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" ..
164
+ make -j 4
165
+ ctest --verbose
166
+ make install
167
+ cd ..
168
+ fi
135
169
136
170
after_success :
137
171
- find . -name '*.gcno' -print
138
172
- gcov-5 --version
139
173
- bash <(curl -s https://codecov.io/bash) -x $(which gcov-5)
174
+ - cat install.log || true
175
+
176
+ after_failure :
177
+ - cat install.log || true
140
178
141
179
notifications :
142
180
webhooks :
0 commit comments