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