1
+ ---
1
2
language : generic
2
3
4
+ os : osx
5
+
3
6
env :
4
7
global :
5
- - CACHE="$HOME/.local"
8
+ - CACHE="${ HOME} /.local"
6
9
- MPICH_VER="3.2"
7
- - MPICH_URL_HEAD="http://www.mpich.org/static/downloads/$MPICH_VER"
10
+ - MPICH_URL_HEAD="http://www.mpich.org/static/downloads/${ MPICH_VER} "
8
11
- MPICH_URL_TAIL="mpich-${MPICH_VER}.tar.gz"
9
- - MPICH_DIR="$HOME/.local/usr/mpich"
10
- - MPICH_BOT_URL_HEAD="https://github.com/sourceryinstitute/OpenCoarrays/files/976766/"
12
+ - MPICH_DIR="${HOME}/.local/usr/mpich"
13
+ - MPICH_GCC6_BOT_URL_HEAD="https://github.com/sourceryinstitute/OpenCoarrays/files/979804/"
14
+ - MPICH_GCC7_BOT_URL_HEAD="https://github.com/sourceryinstitute/OpenCoarrays/files/976779/"
11
15
- MPICH_BOT_URL_TAIL="mpich-3.2_3.yosemite.bottle.1.tar.gz"
12
- - FC=gfortran-6
13
- - CC=gcc-6
14
- - CXX=g++-6
16
+ - BUILD_TYPES="Release Debug RelWithDebInfo CodeCoverage"
17
+ matrix :
18
+ - GCC=6 OSX_PACKAGES="gcc@6 cmake"
19
+ - GCC=7 OSX_PACKAGES="gcc cmake"
15
20
16
21
matrix :
22
+ fast_finish : true
17
23
include :
18
24
- os : osx
19
25
env :
20
- - BUILD_TYPE="CodeCoverage"
21
- OSX_PACKAGES="gcc@6 cmake"
22
- - os : osx
23
- env :
24
- - BUILD_TYPE="Release"
25
- OSX_PACKAGES="gcc@6 cmake"
26
+ - BUILD_TYPE="InstallScript"
27
+ OSX_PACKAGES="gcc@6"
28
+ GCC=6
26
29
- os : osx
27
30
env :
28
- - BUILD_TYPE="InstallScript"
29
- OSX_PACKAGES="gcc@6"
31
+ - OSX_PACKAGES="gcc cmake"
32
+ GCC=7
33
+ OPENCOARRAYS_DEVELOPER=ON
30
34
- &ubuntu
31
35
os : linux
32
36
sudo : false
33
37
env :
34
- - BUILD_TYPE="CodeCoverage"
38
+ - GCC=6
35
39
cache :
36
40
apt : false
37
41
directories :
@@ -48,14 +52,27 @@ matrix:
48
52
- binutils
49
53
- cmake-data
50
54
- cmake
51
- -
52
- << : *ubuntu
53
- env :
54
- - BUILD_TYPE="Release"
55
+ # -
56
+ # <<: *ubuntu
57
+ # env:
58
+ # - GCC=7
59
+ # addons:
60
+ # apt:
61
+ # sources:
62
+ # - ubuntu-toolchain-r-test
63
+ # - george-edison55-precise-backports
64
+ # packages:
65
+ # - gcc-7
66
+ # - gfortran-7
67
+ # - g++-7
68
+ # - binutils
69
+ # - cmake-data
70
+ # - cmake
55
71
-
56
72
<< : *ubuntu
57
73
env :
58
74
- BUILD_TYPE="InstallScript"
75
+ GCC=6
59
76
cache : false
60
77
addons :
61
78
apt :
@@ -65,86 +82,92 @@ matrix:
65
82
- gcc-6
66
83
- gfortran-6
67
84
- g++-6
85
+ allow_failures :
86
+ - os : osx
87
+ env :
88
+ - OSX_PACKAGES="gcc cmake"
89
+ GCC=7
90
+ OPENCOARRAYS_DEVELOPER=ON
68
91
69
92
before_install :
93
+ - export FC=gfortran-${GCC}
94
+ - export CC=gcc-${GCC}
95
+ - export CXX=g++-${GCC}
96
+ - export MPICH_BOT_URL_HEAD=MPICH_GCC${GCC}_BOT_URL_HEAD
70
97
- |
71
98
set -o errexit
72
- if [[ "$ TRAVIS_TAG" ]] && [[ "X$ TRAVIS_OS_NAME" = "Xosx" ]] && $TRAVIS_SECURE_ENV_VARS ; then
99
+ if [[ (-n ${ TRAVIS_TAG}) && (${ TRAVIS_OS_NAME} == osx) ]] && ${ TRAVIS_SECURE_ENV_VARS} ; then
73
100
brew update > /dev/null
74
101
[[ "$(brew ls --versions gpg2)" ]] || brew install gpg2
75
102
brew outdated gpg2 || brew upgrade gpg2
76
- which openssl || brew install openssl
103
+ type -P openssl || brew install openssl
77
104
fi
78
- if ! [[ "$TRAVIS_TAG" ]] || ! $TRAVIS_SECURE_ENV_VARS ; then
105
+ if ! [[ "${ TRAVIS_TAG} " ]] || ! ${ TRAVIS_SECURE_ENV_VARS} ; then
79
106
unset encrypted_ef4535c39461_key || true
80
107
unset encrypted_ef4535c39461_iv || true
81
108
rm subkey-328B3A0E-secret.asc{,.enc} || true
82
109
83
110
fi
84
- if [[ "$TRAVIS_TAG" ]] ; then
111
+ if [[ "${ TRAVIS_TAG} " ]] ; then
85
112
curl https://izaakbeekman.com/izaak.pubkey.txt | gpg --import
86
113
git tag -v ${TRAVIS_TAG}
87
114
fi
88
115
set +o errexit
89
- -
90
- -
91
- -
92
116
- |
93
117
set -o errexit
94
- if [[ $ TRAVIS ]] && [[ "X$ TRAVIS_OS_NAME" = "Xosx" ]]; then
95
- export PATH="$PATH:$ HOME/Library/Python/2.7/bin"
118
+ if [[ (-n ${ TRAVIS}) && (${ TRAVIS_OS_NAME} == osx) ]]; then
119
+ export PATH="${ PATH}:${ HOME} /Library/Python/2.7/bin"
96
120
else
97
- [[ -d "$CACHE/bin" ]] || mkdir -p "$CACHE/bin"
98
- [[ -d "$MPICH_DIR" ]] || mkdir -p "$MPICH_DIR"
99
- export PATH="$CACHE/bin:$PATH"
100
- $FC --version
101
- $CC --version
102
- $CXX --version
121
+ [[ -d "${ CACHE} /bin" ]] || mkdir -p "${ CACHE} /bin"
122
+ [[ -d "${ MPICH_DIR} " ]] || mkdir -p "${ MPICH_DIR} "
123
+ export PATH="${ CACHE} /bin:${ PATH} "
124
+ ${FC} --version
125
+ ${CC} --version
126
+ ${ CXX} --version
103
127
fi
104
128
set +o errexit
105
129
106
130
install :
107
131
- |
108
132
set -o errexit
109
- if [[ $ TRAVIS ]] && [[ "X$ TRAVIS_OS_NAME" = "Xosx" ]]; then
133
+ if [[ (-n ${ TRAVIS}) && (${ TRAVIS_OS_NAME} == osx) ]]; then
110
134
brew update > /dev/null
111
135
112
- for pkg in $OSX_PACKAGES; do
113
- [[ "$(brew ls --versions $pkg)" ]] || brew install --force-bottle $pkg
114
- brew outdated $pkg || brew upgrade --force-bottle $pkg
136
+ for pkg in ${ OSX_PACKAGES} ; do
137
+ [[ "$(brew ls --versions ${ pkg} )" ]] || brew install --force-bottle ${ pkg}
138
+ brew outdated ${ pkg} || brew upgrade --force-bottle ${ pkg}
115
139
done
116
- if ! [[ "$(brew ls --versions mpich)" ]] && [[ "X$BUILD_TYPE" != "XInstallScript" ]]; then
117
- wget ${MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}
140
+ if [[ ${BUILD_TYPE} == InstallScript ]]; then # uninstall some stuff if present
141
+ brew uninstall --force --ignore-dependencies cmake || true
142
+ brew uninstall --force --ignore-dependencies mpich || true
143
+ brew uninstall --force --ignore-dependencies openmpi || true
144
+ else
145
+ wget "${!MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}"
118
146
brew install --force-bottle ${MPICH_BOT_URL_TAIL}
119
147
if ! [[ "$(brew ls --versions mpich)" ]]; then
120
148
brew install --force-bottle mpich
121
149
fi
122
- rm -rf /usr/local/opt/gcc || true
123
- ln -s /usr/local/opt/gcc@6 /usr/local/opt/gcc # hack to get dynamic linker to find gcc 6 stuff
124
- mpif90 --version || mpif90 -show
125
- mpicc --version || mpicc -show
126
- cmake --version
127
- elif [[ "X$BUILD_TYPE" = "XInstallScript" ]]; then # uninstall some stuff if present
128
- [[ "$(brew ls --versions cmake)" ]] && brew rm cmake || true
129
- [[ "$(brew ls --versions mpich)" ]] && brew rm mpich || true
130
- [[ "$(brew ls --versions openmpi)" ]] && brew rm openmpi || true
131
150
fi
132
- elif [[ "X$BUILD_TYPE" != "XInstallScript" ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
133
- if ! ( [[ -x "$HOME/.local/bin/mpif90" ]] && [[ -x "$HOME/.local/bin/mpicc" ]] ); then
151
+ mpif90 --version || mpif90 -show || true
152
+ mpicc --version || mpicc -show || true
153
+ cmake --version || true
154
+
155
+ elif [[ ${BUILD_TYPE} != InstallScript ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
156
+ if ! [[ -x "${HOME}/.local/bin/mpif90" && -x "${HOME}/.local/bin/mpicc" ]]; then
134
157
# mpich install not cached
135
158
# could use prerequisites/build instead...
136
159
wget "${MPICH_URL_HEAD}/${MPICH_URL_TAIL}"
137
- mv "$MPICH_URL_TAIL" "$MPICH_DIR/.."
138
- pushd "$MPICH_DIR/.."
139
- tar -xzvf "$MPICH_URL_TAIL"
160
+ mv "${ MPICH_URL_TAIL} " "${ MPICH_DIR} /.."
161
+ pushd "${ MPICH_DIR} /.."
162
+ tar -xzvf "${ MPICH_URL_TAIL} "
140
163
cd "${MPICH_URL_TAIL%.tar.gz}"
141
- ./configure --prefix="$MPICH_DIR"
164
+ ./configure --prefix="${ MPICH_DIR} "
142
165
make -j 4
143
166
make install
144
167
popd
145
- for f in "$MPICH_DIR/bin/"*; do
146
- if [[ -x "$f " ]]; then
147
- ln -fs "$f " "$HOME/.local/bin/${f##*/}"
168
+ for f in "${ MPICH_DIR} /bin/"*; do
169
+ if [[ -x "${f} " ]]; then
170
+ ln -fs "${f} " "${ HOME} /.local/bin/${f##*/}"
148
171
fi
149
172
done
150
173
fi
@@ -157,55 +180,55 @@ install:
157
180
script :
158
181
- |
159
182
set -o errexit
160
- if [[ "X$BUILD_TYPE" = "XInstallScript" ]]; then
161
- [[ -d "$HOME/opt" ]] || mkdir "$HOME/opt"
162
- [[ -d "$HOME/bin" ]] || mkdir "$HOME/bin"
163
- ln -fs "$(which gfortran-6)" "$HOME/bin/gfortran"
164
- ln -fs "$(which gcc-6)" "$HOME/bin/gcc"
165
- ln -fs "$(which g++-6)" "$HOME/bin/g++"
166
- export PATH="$PATH:$HOME/bin"
167
- ./install.sh --yes-to-all -i "$HOME/opt/opencoarrays" -j 4 -f "$HOME/bin/gfortran" -c "$HOME/bin/gcc" -C "$HOME/bin/g++"
183
+ if [[ ${BUILD_TYPE} == InstallScript ]]; then
184
+ ./install.sh --yes-to-all -i "${HOME}/opencoarrays" -j 4 -f "$(type -P "${FC}")" -c "$(type -P "${CC}")" -C "$(type -P "${CXX}")"
168
185
cd prerequisites/builds/opencoarrays/*
169
186
../../../installations/cmake/*/bin/ctest --output-on-failure --schedule-random --repeat-until-fail 7
170
187
cd -
171
188
else
172
189
mkdir cmake-build
173
- cd cmake-build
174
- cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME/OpenCoarrays" -DCMAKE_BUILD_TYPE="$BUILD_TYPE" ..
175
- make -j 4
176
- ctest --output-on-failure --schedule-random --repeat-until-fail 7
177
- make install
178
- cd ..
190
+ for BUILD_TYPE in ${BUILD_TYPES}; do
191
+ rm -rf cmake-build/* || true
192
+ cd cmake-build
193
+ cmake -DCMAKE_INSTALL_PREFIX:PATH="${HOME}/OpenCoarrays" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" ..
194
+ make -j 4
195
+ ctest --output-on-failure --schedule-random --repeat-until-fail 7
196
+ make install
197
+ make uninstall
198
+ cd ..
199
+ done
179
200
fi
180
201
set +o errexit
181
202
182
203
after_script :
183
204
- |
184
- if [ "$TRAVIS_TAG" ]; then
185
- if [[ "v$TRAVIS_TAG" != "v$(sed -n 's/\([0-9]\{1,\}\(\.[0-9]\{1,\}\)\{1,\}\)/\1/p' .VERSION)" ]]; then
205
+ set -o errexit
206
+ if [[ "${TRAVIS_TAG}" ]]; then
207
+ if [[ "v${TRAVIS_TAG}" != "v$(sed -n 's/\([0-9]\{1,\}\(\.[0-9]\{1,\}\)\{1,\}\)/\1/p' .VERSION)" ]]; then
186
208
echo "ERROR: You are trying to tag a new release but have a version missmatch in \`.VERSION\`"
187
209
false # throw an error
188
210
fi
189
211
fi
212
+ set +o errexit
190
213
191
214
after_success :
192
215
- find . -name '*.gcno' -print
193
- - gcov-6 --version
194
- - bash <(curl -s https://codecov.io/bash) -x $(which gcov-6 )
216
+ - gcov-${GCC} --version
217
+ - bash <(curl -s https://codecov.io/bash) -x $(type -P gcov-${GCC} )
195
218
196
219
# before_deploy:
197
220
# - git archive -v --prefix "OpenCoarrays-${TRAVIS_TAG}/" -o "OpenCoarrays-${TRAVIS_TAG}.tar.gz" ${TRAVIS_TAG}
198
221
# - |
199
222
# echo '# To verify cryptographic checksums `shasum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Mac OS X,' > "opencoarrays-${TRAVIS_TAG}-SHA256.txt
200
223
# echo '# `sha256sum -c opencoarrays-'"${TRAVIS_TAG}"'-SHA256.txt` on Linux.' >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
201
- # if [[ "X $(uname -s)" == "XDarwin" ]]; then
224
+ # if [[ $(uname -s) == Darwin ]]; then
202
225
# shasum -a 256 "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
203
226
# else
204
227
# sha256sum "OpenCoarrays-${TRAVIS_TAG}.tar.gz" >> "opencoarrays-${TRAVIS_TAG}-SHA256.txt
205
228
# fi
206
229
# - |
207
230
# set -o errexit
208
- # openssl aes-256-cbc -K $encrypted_ef4535c39461_key -iv $encrypted_ef4535c39461_iv -in subkey-328B3A0E-secret.asc.enc -out ./subkey-328B3A0E-secret.asc -d
231
+ # openssl aes-256-cbc -K ${ encrypted_ef4535c39461_key} -iv ${ encrypted_ef4535c39461_iv} -in subkey-328B3A0E-secret.asc.enc -out ./subkey-328B3A0E-secret.asc -d
209
232
# gpg --allow-secret-key-import --import ./subkey-328B3A0E-secret.asc && rm subkey-328B3A0E-secret.asc
210
233
# rm subkey-328B3A0E-secret.* || true
211
234
# unset encrypted_ef4535c39461_key || true
0 commit comments