99 - MPICH_DIR="$HOME/.local/usr/mpich"
1010 - MPICH_BOT_URL_HEAD="https://github.com/sourceryinstitute/opencoarrays/files/64308/"
1111 - MPICH_BOT_URL_TAIL="mpich-3.2.yosemite.bottle.1.tar.gz"
12- - OSX_PACKAGES="gcc cmake"
1312
1413matrix :
1514 include :
1615 - os : osx
1716 env :
1817 - BUILD_TYPE="CodeCoverage"
18+ OSX_PACKAGES="gcc cmake"
1919 - os : osx
2020 env :
2121 - BUILD_TYPE="Release"
22+ OSX_PACKAGES="gcc cmake"
23+ - os : osx
24+ env :
25+ - BUILD_TYPE="InstallScript"
26+ OSX_PACKAGES="gcc"
2227 - os : linux
2328 sudo : false
2429 env :
2530 - BUILD_TYPE="CodeCoverage"
2631 cache :
2732 directories :
2833 - " $CACHE"
29- - " $HOME/.cache/pip"
3034 addons :
3135 apt :
3236 sources :
@@ -45,7 +49,6 @@ matrix:
4549 cache :
4650 directories :
4751 - " $CACHE"
48- - " $HOME/.cache/pip"
4952 addons :
5053 apt :
5154 sources :
@@ -57,6 +60,17 @@ matrix:
5760 - binutils
5861 - cmake-data
5962 - 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
6074
6175before_install :
6276 - |
@@ -70,73 +84,97 @@ before_install:
7084 export CC=gcc-5
7185 $FC --version
7286 $CC --version
73- cmake --version
7487 fi
7588
7689install :
7790 - |
7891 if [[ $TRAVIS ]] && [[ "X$TRAVIS_OS_NAME" = "Xosx" ]]; then
79- brew update > /dev/null
92+ brew update > /dev/null
8093
8194 for pkg in $OSX_PACKAGES; do
8295 [[ "$(brew ls --versions $pkg)" ]] || brew install --force-bottle $pkg
8396 brew outdated $pkg || brew upgrade --force-bottle $pkg
8497 done
8598 export FC=gfortran-5
8699 export CC=gcc-5
87- if ! [[ "$(brew ls --versions mpich)" ]]; then
100+ if ! [[ "$(brew ls --versions mpich)" ]] && [[ "X$BUILD_TYPE" != "XInstallScript" ]] ; then
88101 wget ${MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}
89102 brew install --force-bottle ${MPICH_BOT_URL_TAIL}
90103 if ! [[ "$(brew ls --versions mpich)" ]]; then
91104 brew install --force-bottle mpich
92105 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
93115 fi
94- else
116+ elif [[ "X$BUILD_TYPE" != "XInstallScript" ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
95117 if ! ( [[ -x "$HOME/.local/bin/mpif90" ]] && [[ -x "$HOME/.local/bin/mpicc" ]] ); then
96118 # 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
111132 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
118134 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
126141
127142script :
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
135169
136170after_success :
137171 - find . -name '*.gcno' -print
138172 - gcov-5 --version
139173 - 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
140178
141179notifications :
142180 webhooks :
0 commit comments