зеркало из https://github.com/mislav/hub.git
67 строки
1.4 KiB
Bash
Executable File
67 строки
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Usage: script/test [--coverage [<MIN>]] [<FEATURES>...]
|
|
#
|
|
# Run Go and Cucumber test suites for hub.
|
|
|
|
set -e
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--coverage )
|
|
export HUB_COVERAGE="$PWD/tmp/cover.out"
|
|
if [ "${2%.*}" -gt 0 ] 2>/dev/null; then
|
|
min_coverage="$2"
|
|
shift 2
|
|
else
|
|
min_coverage=1
|
|
shift 1
|
|
fi
|
|
;;
|
|
-h | --help )
|
|
sed -ne '/^#/!q;s/.\{1,2\}//;1d;p' < "$0"
|
|
exit
|
|
;;
|
|
* )
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
STATUS=0
|
|
|
|
trap "exit 1" INT
|
|
|
|
check_formatting() {
|
|
[[ "$(go version)" != *" go1.8."* ]] || return 0
|
|
gofmt -l -w . >/dev/null
|
|
git checkout -- vendor
|
|
if ! git diff -U1 --exit-code; then
|
|
echo
|
|
echo "Some go code was not formatted properly." >&2
|
|
echo "Run \`make fmt' locally to fix these errors." >&2
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
install_test() {
|
|
touch share/man/man1/hub.1
|
|
DESTDIR="$PWD/tmp/destdir" prefix=/my/prefix bash < script/install.sh
|
|
test -x tmp/destdir/my/prefix/bin/hub
|
|
test -e tmp/destdir/my/prefix/share/man/man1/hub.1
|
|
test ! -x tmp/destdir/my/prefix/share/man/man1/hub.1
|
|
rm share/man/man1/hub.1
|
|
}
|
|
|
|
[ -z "$HUB_COVERAGE" ] || script/coverage prepare
|
|
script/build
|
|
go test ./... || STATUS="$?"
|
|
script/ruby-test "$@" || STATUS="$?"
|
|
[ -z "$HUB_COVERAGE" ] || script/coverage summarize "$min_coverage" || STATUS="$?"
|
|
|
|
if [ -n "$CI" ]; then
|
|
check_formatting || STATUS="$?"
|
|
install_test || STATUS="$?"
|
|
fi
|
|
|
|
exit "$STATUS"
|