bandit/scripts/integration-test.sh
Eric Brown 8dd30b8284 Ensure error exit codes fail integrations
The exit code of sub commands were ignored.  As a result all
integration jobs would pass even when they fail.

Change-Id: I071283d2737199ed710e246740f68f8e857027f2
Closes-Bug: #1546772
2016-03-31 14:50:09 +00:00

55 lines
1.3 KiB
Bash

#!/bin/bash
# Usage: integration-test.sh {organization} {project} {path-to-clone}
# Example usage:
# $ integration-test.sh openstack barbican
# $ integration-test.sh openstack keystone
# $ integration-test.sh openstack keystonemiddleware
# $ integration-test.sh openstack sahara
# $ integration-test.sh openstack python-keystoneclient \
# /opt/openstack/python-keystoneclient
set -x
set -e
if [[ $# -lt 2 ]]; then
echo "Script requires at least two arguments to run."
echo "Usage: $0 organization project [path-to-clone]"
exit 1
fi
REPO_ROOT=${REPO_ROOT:-git://git.openstack.org}
org=$1
project=$2
if [[ $# -eq 3 ]] ; then
projectdir=$3
clone=0
else
projectdir=$project
clone=1
fi
workdir="$(pwd)"
if [[ $clone -eq 1 ]] ; then
tempdir="$(mktemp -d)"
trap "rm -rf $tempdir" EXIT
pushd $tempdir
git clone $REPO_ROOT/$org/$project --depth=1
fi
pushd $projectdir
# --notest allows us to create the tox-managed virtualenv without
# running any tests.
tox -e bandit --notest
# We then install our local version of bandit into the virtualenv
.tox/bandit/bin/pip install --force-reinstall -U $workdir
# And now we actually run the tests
tox -e bandit
popd
if [[ $clone -eq 1 ]] ; then
popd
fi