Skip to content

Commit fa6a9fb

Browse files
committed
Migrate main travis shell code to scripts
- Should fix false negatives - Should more rigorously check for errors
1 parent 35b9374 commit fa6a9fb

File tree

5 files changed

+164
-66
lines changed

5 files changed

+164
-66
lines changed

.travis.yml

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -122,74 +122,10 @@ before_install:
122122
fi
123123
124124
install:
125-
- |
126-
if [[ (-n ${TRAVIS}) && (${TRAVIS_OS_NAME} == osx) ]]; then
127-
brew update > /dev/null
128-
129-
brew ls --versions shellcheck >/dev/null || brew install --force-bottle shellcheck
130-
brew outdated shellcheck || brew upgrade --force-bottle shellcheck
131-
for pkg in ${OSX_PACKAGES}; do
132-
brew ls --versions ${pkg} >/dev/null || brew install ${pkg} || brew link --overwrite ${pkg}
133-
brew outdated ${pkg} || brew upgrade ${pkg}
134-
done
135-
if [[ ${BUILD_TYPE} == InstallScript ]]; then # uninstall some stuff if present
136-
brew uninstall --force --ignore-dependencies cmake || true
137-
brew uninstall --force --ignore-dependencies mpich || true
138-
brew uninstall --force --ignore-dependencies openmpi || true
139-
else
140-
wget "${!MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}"
141-
brew install --force-bottle ${MPICH_BOT_URL_TAIL}
142-
brew ls --versions mpich >/dev/null || brew install --force-bottle mpich
143-
fi
144-
mpif90 --version || mpif90 -show || true
145-
mpicc --version || mpicc -show || true
146-
cmake --version || true
147-
148-
elif [[ ${BUILD_TYPE} != InstallScript ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
149-
if ! [[ -x "${HOME}/.local/bin/mpif90" && -x "${HOME}/.local/bin/mpicc" ]]; then
150-
# mpich install not cached
151-
# could use prerequisites/build instead...
152-
wget "${MPICH_URL_HEAD}/${MPICH_URL_TAIL}"
153-
mv "${MPICH_URL_TAIL}" "${MPICH_DIR}/.."
154-
pushd "${MPICH_DIR}/.."
155-
tar -xzvf "${MPICH_URL_TAIL}"
156-
cd "${MPICH_URL_TAIL%.tar.gz}"
157-
./configure --prefix="${MPICH_DIR}"
158-
make -j 4
159-
make install
160-
popd
161-
for f in "${MPICH_DIR}/bin/"*; do
162-
if [[ -x "${f}" ]]; then
163-
ln -fs "${f}" "${HOME}/.local/bin/${f##*/}"
164-
fi
165-
done
166-
fi
167-
mpif90 --version
168-
mpicc --version
169-
cmake --version
170-
fi
125+
- developer-scripts/travis/install.${TRAVIS_OS_NAME}.sh
171126

172127
script:
173-
- echo "In Travis-CI 'script' section."
174-
- |
175-
if [[ ${BUILD_TYPE} == InstallScript ]]; then
176-
./install.sh --yes-to-all -i "${HOME}/opencoarrays" -j 4 -f "$(type -P "${FC}")" -c "$(type -P "${CC}")" -C "$(type -P "${CXX}")"
177-
cd prerequisites/builds/opencoarrays/*
178-
../../../installations/cmake/*/bin/ctest --output-on-failure --schedule-random --repeat-until-fail ${NREPEAT:-5}
179-
cd -
180-
else
181-
mkdir cmake-build || echo "Cannot mkdir cmake-build"
182-
for BUILD_TYPE in ${BUILD_TYPES}; do
183-
rm -rf cmake-build/* || true
184-
cd cmake-build || echo 'cannot cd to cmake-build/'
185-
cmake -DCMAKE_INSTALL_PREFIX:PATH="${HOME}/OpenCoarrays" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" .. || echo "running cmake failed"
186-
make -j 4 || echo "running make failed"
187-
ctest --output-on-failure --schedule-random --repeat-until-fail ${NREPEAT:-5} --timeout ${TEST_TIMEOUT:-200}
188-
make install
189-
make uninstall
190-
cd ..
191-
done
192-
fi
128+
- developer-scripts/travis/install.${BUILD_TYPE:-cmake}.sh
193129

194130
after_script:
195131
- find . -name '*.gcno' -print
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/usr/bin/env bash
2+
3+
set -o errexit
4+
set -o verbose
5+
set -o pipefail
6+
set -o nounset
7+
set -o errtrace
8+
9+
__file=developer-scripts/travis/install.linux.sh
10+
11+
# Error tracing
12+
# requires `set -o errtrace`
13+
__caf_err_report() {
14+
local error_code
15+
error_code=${?}
16+
echo "Error in ${__file} in function ${1} on line ${2}." >&2
17+
exit ${error_code}
18+
}
19+
# Always provide an error backtrace
20+
trap '__caf_err_report "${FUNCNAME:-.}" ${LINENO}' ERR
21+
22+
echo "Performing Travis-CI installation phase on Linux..."
23+
24+
if [[ ${BUILD_TYPE} != InstallScript ]]; then # Ubuntu on Travis-CI, NOT testing install.sh
25+
if ! [[ -x "${HOME}/.local/bin/mpif90" && -x "${HOME}/.local/bin/mpicc" ]]; then
26+
# mpich install not cached
27+
# could use prerequisites/build instead...
28+
wget "${MPICH_URL_HEAD}/${MPICH_URL_TAIL}"
29+
mv "${MPICH_URL_TAIL}" "${MPICH_DIR}/.."
30+
(
31+
cd "${MPICH_DIR}/.."
32+
tar -xzvf "${MPICH_URL_TAIL}"
33+
cd "${MPICH_URL_TAIL%.tar.gz}"
34+
./configure --prefix="${MPICH_DIR}"
35+
make -j 4
36+
make install
37+
)
38+
for f in "${MPICH_DIR}/bin/"*; do
39+
if [[ -x "${f}" ]]; then
40+
ln -fs "${f}" "${HOME}/.local/bin/${f##*/}"
41+
fi
42+
done
43+
fi
44+
mpif90 --version
45+
mpicc --version
46+
cmake --version
47+
fi
48+
49+
echo "Done."
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env bash
2+
3+
set -o errexit
4+
set -o verbose
5+
set -o pipefail
6+
set -o nounset
7+
set -o errtrace
8+
9+
__file=developer-scripts/travis/install.osx.sh
10+
11+
# Error tracing
12+
# requires `set -o errtrace`
13+
__caf_err_report() {
14+
local error_code
15+
error_code=${?}
16+
echo "Error in ${__file} in function ${1} on line ${2}." >&2
17+
exit ${error_code}
18+
}
19+
# Always provide an error backtrace
20+
trap '__caf_err_report "${FUNCNAME:-.}" ${LINENO}' ERR
21+
22+
echo "Performing Travis-CI installation phase on macOS..."
23+
24+
# Update and install via Homebrew on macOS
25+
brew update > /dev/null
26+
27+
brew ls --versions shellcheck >/dev/null || brew install --force-bottle shellcheck
28+
brew outdated shellcheck || brew upgrade --force-bottle shellcheck
29+
for pkg in ${OSX_PACKAGES}; do
30+
brew ls --versions "${pkg}" >/dev/null || brew install "${pkg}" || brew link --overwrite "${pkg}"
31+
brew outdated "${pkg}" || brew upgrade "${pkg}"
32+
done
33+
if [[ ${BUILD_TYPE} == InstallScript ]]; then # uninstall some stuff if present
34+
brew uninstall --force --ignore-dependencies cmake || true
35+
brew uninstall --force --ignore-dependencies mpich || true
36+
brew uninstall --force --ignore-dependencies openmpi || true
37+
else
38+
wget "${!MPICH_BOT_URL_HEAD}${MPICH_BOT_URL_TAIL}"
39+
brew install --force-bottle "${MPICH_BOT_URL_TAIL}"
40+
brew ls --versions mpich >/dev/null || brew install --force-bottle mpich
41+
fi
42+
mpif90 --version || mpif90 -show || true
43+
mpicc --version || mpicc -show || true
44+
cmake --version || true
45+
46+
echo "Done."
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/usr/bin/env bash
2+
3+
set -o errexit
4+
set -o verbose
5+
set -o pipefail
6+
set -o nounset
7+
set -o errtrace
8+
9+
__file=developer-scripts/travis/test-script.InstallScript.sh
10+
11+
# Error tracing
12+
# requires `set -o errtrace`
13+
__caf_err_report() {
14+
local error_code
15+
error_code=${?}
16+
echo "Error in ${__file} in function ${1} on line ${2}." >&2
17+
exit ${error_code}
18+
}
19+
# Always provide an error backtrace
20+
trap '__caf_err_report "${FUNCNAME:-.}" ${LINENO}' ERR
21+
22+
echo "Performing Travis-CI script phase for the OpenCoarrays installation script..."
23+
24+
./install.sh --yes-to-all -i "${HOME}/opencoarrays" -j 4 -f "$(type -P "${FC}")" -c "$(type -P "${CC}")" -C "$(type -P "${CXX}")"
25+
(
26+
cd prerequisites/builds/opencoarrays/*
27+
"../../../installations/cmake/*/bin/ctest" --output-on-failure --schedule-random --repeat-until-fail "${NREPEAT:-5}"
28+
)
29+
30+
echo "Done."
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
3+
set -o errexit
4+
set -o verbose
5+
set -o pipefail
6+
set -o nounset
7+
set -o errtrace
8+
9+
__file=developer-scripts/travis/test-script.cmake.sh
10+
11+
# Error tracing
12+
# requires `set -o errtrace`
13+
__caf_err_report() {
14+
local error_code
15+
error_code=${?}
16+
echo "Error in ${__file} in function ${1} on line ${2}." >&2
17+
exit ${error_code}
18+
}
19+
# Always provide an error backtrace
20+
trap '__caf_err_report "${FUNCNAME:-.}" ${LINENO}' ERR
21+
22+
echo "Performing Travis-CI script phase for the OpenCoarrays direct cmake build..."
23+
24+
mkdir cmake-build || echo "Cannot mkdir cmake-build"
25+
for BUILD_TYPE in ${BUILD_TYPES}; do
26+
rm -rf cmake-build/* || true
27+
(
28+
cd cmake-build || echo 'cannot cd to cmake-build/'
29+
cmake -DCMAKE_INSTALL_PREFIX:PATH="${HOME}/OpenCoarrays" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" .. || echo "running cmake failed"
30+
make -j 4 || echo "running make failed"
31+
ctest --output-on-failure --schedule-random --repeat-until-fail "${NREPEAT:-5}" --timeout "${TEST_TIMEOUT:-200}"
32+
make install
33+
make uninstall
34+
)
35+
done
36+
37+
echo "Done."

0 commit comments

Comments
 (0)