7a19cd219a
Previously, PyYAML was hosted on BitBucket, so we had a mirror of the repo on GitHub. Now, official hosting has moved to GitHub, so we can point to the official repository instead. Thanks to Marco A. Feliu <marco.feliu@nianet.org> for pointing this out. This patch also updates the install shim to update submodule URLs. To preserve the functionality of earlier Dotbot versions, we will need to maintain 'https://github.com/anishathalye/pyyaml'. Because old versions of the install shim used with new Dotbot versions will not update submodule URLs, we will need to keep the old repository in sync with the upstream repository as we upgrade PyYAML versions. This patch also upgrades the dependency to PyYAML 3.12.
81 lines
1.8 KiB
Bash
Executable file
81 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# For debug only:
|
|
# export DEBUG=true
|
|
# set -x
|
|
# set -v
|
|
|
|
export BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
# Prevent execution outside of Travis CI builds
|
|
if [[ "${TRAVIS}" != true || "${CI}" != true ]]; then
|
|
echo "Error: `basename "$0"` should only be used on Travis"
|
|
exit 2
|
|
fi
|
|
|
|
# Travis runs do not rely on Vagrant
|
|
export USE_VAGRANT=false
|
|
export DOTBOT_EXEC="${BASEDIR}/bin/dotbot"
|
|
|
|
cd "${BASEDIR}"
|
|
. "test/driver-lib.bash"
|
|
|
|
travis_initialize() {
|
|
echo "initializing."
|
|
tests_run=0
|
|
tests_passed=0
|
|
tests_failed=0
|
|
tests_total="${1}"
|
|
local plural="" && [ "${tests_total}" -gt 1 ] && plural="s"
|
|
printf -- "running %d test%s...\n\n" "${tests_total}" "${plural}"
|
|
}
|
|
|
|
travis_cleanup() {
|
|
# Remove all dotfiles installed since the start, ignoring the main
|
|
# dotfiles directory, and the dotbot source directory
|
|
find ~ -mindepth 1 -newermt "${date_stamp}" \
|
|
-not \( -path ~ -o -path "${BASEDIR}/*" \
|
|
-o -path ~/dotfiles \) \
|
|
-exec rm -rf {} +
|
|
}
|
|
|
|
travis_run_test() {
|
|
tests_run=$((tests_run + 1))
|
|
printf '[%d/%d] (%s)\n' "${tests_run}" "${tests_total}" "${1}"
|
|
cd ${BASEDIR}/test/tests
|
|
if bash ${1} ; then
|
|
pass
|
|
else
|
|
fail
|
|
fi
|
|
travis_cleanup || die "unable to clean up system."
|
|
}
|
|
|
|
date_stamp="$(date --rfc-3339=ns)"
|
|
start="$(date +%s)"
|
|
|
|
declare -a tests=()
|
|
|
|
if [ $# -eq 0 ]; then
|
|
while read file; do
|
|
tests+=("${file}")
|
|
done < <(find ${BASEDIR}/test/tests -type f -name '*.bash')
|
|
else
|
|
tests=("$@")
|
|
fi
|
|
|
|
travis_initialize "${#tests[@]}"
|
|
|
|
for file in "${tests[@]}"; do
|
|
travis_run_test "$(basename "${file}")"
|
|
done
|
|
|
|
if report; then
|
|
ret=0
|
|
else
|
|
ret=1
|
|
fi
|
|
|
|
echo "(tests run in $(($(date +%s) - start)) seconds)"
|
|
exit ${ret}
|