blob: 1ccb8626eb860b0e9d17cf212f6a2a27dac502d1 [file] [log] [blame]
#!/bin/bash
set -ex
export GERRIT_NAME=${GERRIT_NAME:-mcp-jenkins}
# Would delete all .git folders.
# Keep in mind, you would not able to get any other version or history!
# Will ignore 'tempest' itself bz of:
# ```
# Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository.
# It's also possible that there is a mismatch between the package name in setup.cfg and the argument given to pbr.version.VersionInfo.
# Project name tempest was given, but was not able to be found.
# ```
# FIXME|TODO Disabled by default.
# Currently, pip not able to install any package w\o .git directory.
# Should it be re-writed to tgz install or whatever?
#export RELEASE_BUILD=${RELEASE_BUILD:-true}
RELEASE_BUILD=false
#
export TEMPEST_TAG="${TEMPEST_TAG:-mcp/ocata}"
export HORIZON_TAG="${HORIZON_TAG:-mcp/ocata}"
export BARBICAN_TAG="${BARBICAN_TAG:-mcp/ocata}"
export DESIGNATE_TAG="${DESIGNATE_TAG:-mcp/ocata}"
export HEAT_TAG="${HEAT_TAG:-mcp/ocata}"
export IRONIC_TAG="${IRONIC_TAG:-mcp/ocata}"
export MANILA_TAG="${MANILA_TAG:-mcp/ocata}"
export TELEMETRY_TAG="${TELEMETRY_TAG:-mcp/ocata}"
export OCTAVIA_TAG="${OCTAVIA_TAG:-mcp/ocata}"
export PATROLE_TAG="${PATROLE_TAG:-0.4.x}"
export TUNGSTEN_TAG="${TUNGSTEN_TAG:-0.1.x}"
# global openstack requirements repo
# This is the commit where tempest version is 17.2.0 in u-c
export UPPER_CONSTRAINTS_TAG="${UPPER_CONSTRAINTS_TAG:-83b1de74834fbcdbe749e270c29e76cdc28f85d5}"
function prepare(){
# TODO migrate to downstrem mirror?
mkdir -p data; pushd data
if [ ! -d openstack_requirements ] ; then
git clone https://github.com/openstack/requirements.git openstack_requirements
pushd openstack_requirements; git checkout $UPPER_CONSTRAINTS_TAG; popd
fi
sed -i -e "s|tempest=.*|git+file:///var/lib/tempest@${TEMPEST_TAG}#egg=tempest|g" \
openstack_requirements/upper-constraints.txt;
#
if [ ! -d tempest-horizon-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/tempest-horizon tempest-horizon-plugin
pushd tempest-horizon-plugin ; git checkout $HORIZON_TAG; popd
fi
#
if [ ! -d barbican-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/barbican-tempest-plugin
pushd barbican-tempest-plugin; git checkout $BARBICAN_TAG; popd
fi
#
if [ ! -d designate-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/designate-tempest-plugin
pushd designate-tempest-plugin; git checkout $DESIGNATE_TAG; popd;
fi
#
if [ ! -d heat-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/heat-tempest-plugin
pushd heat-tempest-plugin; git checkout $HEAT_TAG; popd
fi
#
if [ ! -d ironic-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/ironic-tempest-plugin
pushd ironic-tempest-plugin; git checkout $IRONIC_TAG; popd;
fi
#
if [ ! -d manila-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/manila-tempest-plugin
pushd manila-tempest-plugin; git checkout $MANILA_TAG; popd;
fi
#
if [ ! -d telemetry-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/telemetry-tempest-plugin
pushd telemetry-tempest-plugin; git checkout $TELEMETRY_TAG; popd;
fi
#
if [ ! -d octavia-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/octavia-tempest-plugin
pushd octavia-tempest-plugin; git checkout $OCTAVIA_TAG; popd;
fi
#
if [ ! -d patrole-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/patrole patrole-tempest-plugin
pushd patrole-tempest-plugin; git checkout $PATROLE_TAG; popd;
fi
#
if [ ! -d tungsten-tempest-plugin ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/contrail/tungsten-tempest tungsten-tempest-plugin
pushd tungsten-tempest-plugin; git checkout $TUNGSTEN_TAG; popd;
fi
#
if [ ! -d tempest ] ; then
git clone ssh://${GERRIT_NAME}@gerrit.mcp.mirantis.com:29418/packaging/sources/tempest tempest
pushd tempest ; git checkout $TEMPEST_TAG; popd
fi
#
if [[ "$(echo ${RELEASE_BUILD} | tr [:upper:] [:lower:] )" == "true" ]]; then
find . -maxdepth 2 -type d -iname .git -not -path '*tempest/.git*' | xargs --no-run-if-empty rm -rf
find . -maxdepth 2 -type f -iname .gitignore -or -iname .gitreview | xargs --no-run-if-empty rm -v
fi
popd
}
function buildme(){
echo "=== Installing plugins"
plugins="tempest-horizon-plugin barbican-tempest-plugin designate-tempest-plugin heat-tempest-plugin ironic-tempest-plugin"
plugins="${plugins} manila-tempest-plugin telemetry-tempest-plugin octavia-tempest-plugin patrole-tempest-plugin tungsten-tempest-plugin"
for plugin in ${plugins}; do
echo "=== Installing plugin: ${plugin}"
pushd /var/lib/${plugin}
pip install --constraint /var/lib/openstack_requirements/upper-constraints.txt -r requirements.txt .
popd
done
echo "=== Installing tempest itself"
pushd /var/lib/tempest/
pip install .
popd
pip install junitxml
echo "BUILD_TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S' -u)" > /etc/build_timestamp
}
############# body ############################################################
case "$1" in
buildme) echo "Attempt to buildme"
buildme
;;
*) echo "Attempt to prepare.."
prepare
;;
esac