
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
55 lines
1.3 KiB
Bash
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
|