test: Add in_ci utility test function
in_ci checks for environment variables set by a selection of CI systems and returns true if the test appears to be running in CI. Additionally it can test for specific CI systems, and returns true if the CI system is listed. Deduplicate existing environment checks for Travis and Jenkins. Signed-off-by: Joe Groocock <me@frebib.net>
This commit is contained in:
@@ -4,10 +4,7 @@ XPWD=`pwd`
|
||||
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" # dir!
|
||||
cd "${ROOT}" >/dev/null
|
||||
|
||||
travis=0
|
||||
if env | grep -q '^TRAVIS=true$'; then
|
||||
travis=1
|
||||
fi
|
||||
. ${ROOT}/test/util.sh
|
||||
|
||||
sudo_command=$(command -v sudo)
|
||||
|
||||
@@ -81,7 +78,7 @@ if [ ! -z "$PACMAN" ]; then
|
||||
$sudo_command $PACMAN -S --noconfirm --asdeps --needed libvirt augeas rubygems libpcap
|
||||
fi
|
||||
|
||||
if [ $travis -eq 0 ]; then
|
||||
if ! in_ci; then
|
||||
if [ ! -z "$YUM" ]; then
|
||||
if [ -z "$GO" ]; then
|
||||
$sudo_command $YUM install -y golang golang-googlecode-tools-stringer || $sudo_command $YUM install -y golang-bin # centos-7 epel
|
||||
@@ -132,8 +129,10 @@ go get golang.org/x/lint/golint # for `golint`-ing
|
||||
go get golang.org/x/tools/cmd/goimports # for fmt
|
||||
go get github.com/tmthrgd/go-bindata/go-bindata # for compiling in non golang files
|
||||
go get github.com/dvyukov/go-fuzz/go-fuzz # for fuzzing the mcl lang bits
|
||||
if env | grep -q -e '^TRAVIS=true$' -e '^JENKINS_URL=' -e '^BUILD_TAG=jenkins'; then
|
||||
go get -u gopkg.in/alecthomas/gometalinter.v1 && mv "$(dirname $(command -v gometalinter.v1))/gometalinter.v1" "$(dirname $(command -v gometalinter.v1))/gometalinter" && gometalinter --install # bonus
|
||||
if in_ci; then
|
||||
go get -u gopkg.in/alecthomas/gometalinter.v1 && \
|
||||
mv "$(dirname $(command -v gometalinter.v1))/gometalinter.v1" "$(dirname $(command -v gometalinter.v1))/gometalinter" && \
|
||||
gometalinter --install # bonus
|
||||
fi
|
||||
command -v mdl &>/dev/null || gem install mdl --no-document || true # for linting markdown files
|
||||
command -v fpm &>/dev/null || gem install fpm --no-document || true # for cross distro packaging
|
||||
|
||||
3
test.sh
3
test.sh
@@ -76,8 +76,7 @@ fi
|
||||
# run-test ./test/test-crossbuild.sh
|
||||
|
||||
# do these longer tests only when running on ci
|
||||
if env | grep -q -e '^TRAVIS=true$' -e '^JENKINS_URL=' -e '^BUILD_TAG=jenkins'; then
|
||||
|
||||
if in_ci; then
|
||||
if label-block "shell"; then
|
||||
run-testsuite ./test/test-shell.sh
|
||||
fi
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
. "$(dirname "$0")/../util.sh"
|
||||
|
||||
if env | grep -q -e '^TRAVIS=true$'; then
|
||||
if in_ci travis; then
|
||||
# this often fails in travis with: `address already in use`
|
||||
echo "Travis gives wonky results here, skipping test!"
|
||||
exit
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
. "$(dirname "$0")/../util.sh"
|
||||
|
||||
if env | grep -q -e '^TRAVIS=true$'; then
|
||||
if in_ci travis jenkins; then
|
||||
# inotify doesn't seem to work properly on travis
|
||||
echo "Travis and Jenkins give wonky results here, skipping test!"
|
||||
exit
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
exit 0 # TODO: this test needs to be update to use deploys instead
|
||||
|
||||
#if env | grep -q -e '^TRAVIS=true$'; then
|
||||
#if in_ci; then
|
||||
# # inotify doesn't seem to work properly on travis
|
||||
# echo "Travis and Jenkins give wonky results here, skipping test!"
|
||||
# exit
|
||||
|
||||
@@ -8,7 +8,7 @@ cd "${ROOT}"
|
||||
. test/util.sh
|
||||
|
||||
# travis is slow for some reason
|
||||
if env | grep -q -e '^TRAVIS=true$'; then
|
||||
if in_ci travis; then
|
||||
export GO_TEST_TIMEOUT_SCALE=3
|
||||
fi
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
cd "${ROOT}"
|
||||
. test/util.sh
|
||||
|
||||
#if env | grep -q -e '^TRAVIS=true$' -e '^JENKINS_URL=' -e '^BUILD_TAG=jenkins'; then
|
||||
#if in_ci travis jenkins; then
|
||||
# echo "Travis and Jenkins give wonky results here, skipping test!"
|
||||
# exit 0
|
||||
#fi
|
||||
|
||||
31
test/util.sh
31
test/util.sh
@@ -20,26 +20,43 @@ fi
|
||||
|
||||
TIMEOUT="$timeout --kill-after=360s --signal=QUIT 300s"
|
||||
|
||||
fail_test()
|
||||
{
|
||||
in_ci() {
|
||||
if [ $# -eq 0 ]; then
|
||||
test -n "$CI" -o -n "$TRAVIS" -o -n "$JENKINS_URL"
|
||||
return $?
|
||||
fi
|
||||
|
||||
for var in "$@"; do
|
||||
case "$var" in
|
||||
travis)
|
||||
test "$TRAVIS" = "true" && return 0;;
|
||||
jenkins)
|
||||
test -n "$JENKINS_URL" && return 0;;
|
||||
*)
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
fail_test() {
|
||||
echo -e "FAIL: $@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function run-test()
|
||||
{
|
||||
function run-test() {
|
||||
"$@" || failures=$( [ -n "$failures" ] && echo "$failures\\n$@" || echo "$@" )
|
||||
}
|
||||
|
||||
# travis expander helpers from:
|
||||
# https://github.com/travis-ci/travis-rubies/blob/build/build.sh
|
||||
fold_start() {
|
||||
if env | grep -q -e '^TRAVIS=true$'; then
|
||||
echo -e "travis_fold:start:$1\033[33;1m$2\033[0m"
|
||||
if in_ci travis; then
|
||||
echo -e "travis_fold:start:$1\033[33;1m${@:2}\033[0m"
|
||||
fi
|
||||
}
|
||||
fold_end() {
|
||||
if env | grep -q -e '^TRAVIS=true$'; then
|
||||
if in_ci travis; then
|
||||
echo -e "\ntravis_fold:end:$1\r"
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user