Enable consuming packages for a feature branch

An use case for TripleO CI can be to test changes on an
specific feature branch. In that case, the packages need to be
consumed for that specific branch, instead of master.
This change enables the detection of a feature branch in the
current change, and enables the related repositories (they will
default to master if the feature branch for a repo does not exist)

Also update ELEMENTS_PATH properly to consune latest
features from diskimage-builder

Change-Id: I701c01dd18023c0c05aede9d06b6b1380b6f2386
Needed-By: I0ca6a4ae3a2684d473b44e5f332ee4225ee30f8c
This commit is contained in:
Yolanda Robla Mota 2016-11-18 13:08:47 +01:00
parent 8da494986b
commit 3deb01f109
4 changed files with 39 additions and 9 deletions

View File

@ -34,7 +34,15 @@ sudo yum -y update
# openstack-tripleo-common needed for the tripleo-build-images command
sudo yum -y install instack-undercloud git openstack-tripleo-common
export ELEMENTS_PATH="/usr/share/diskimage-builder/elements:/usr/share/instack-undercloud:/usr/share/tripleo-image-elements:/usr/share/tripleo-puppet-elements:/usr/share/openstack-heat-templates/software-config/elements"
# detect the real path depending on diskimage-builder version
COMMON_ELEMENTS_PATH=$(python -c '
try:
import diskimage_builder.paths
diskimage_builder.paths.show_path("elements")
except:
print("/usr/share/diskimage-builder/elements")
')
export ELEMENTS_PATH="${COMMON_ELEMENTS_PATH}:/usr/share/instack-undercloud:/usr/share/tripleo-image-elements:/usr/share/tripleo-puppet-elements:/usr/share/openstack-heat-templates/software-config/elements"
sudo yum -y install openstack-tripleo-common

View File

@ -301,7 +301,7 @@ function layer_ci_repo {
function echo_vars_to_deploy_env {
for VAR in CENTOS_MIRROR http_proxy INTROSPECT MY_IP no_proxy NODECOUNT OVERCLOUD_DEPLOY_ARGS OVERCLOUD_UPDATE_ARGS PACEMAKER SSH_OPTIONS STABLE_RELEASE TRIPLEO_ROOT TRIPLEO_SH_ARGS NETISO_V4 NETISO_V6 TOCI_JOBTYPE UNDERCLOUD_SSL RUN_TEMPEST_TESTS RUN_PING_TEST JOB_NAME OVB UNDERCLOUD_IDEMPOTENT MULTINODE CONTROLLER_HOSTS COMPUTE_HOSTS SUBNODES_SSH_KEY TEST_OVERCLOUD_DELETE OVERCLOUD OSINFRA UNDERCLOUD_SANITY_CHECK PINGTEST_TEMPLATE OVERCLOUD_PINGTEST_ARGS; do
for VAR in CENTOS_MIRROR http_proxy INTROSPECT MY_IP no_proxy NODECOUNT OVERCLOUD_DEPLOY_ARGS OVERCLOUD_UPDATE_ARGS PACEMAKER SSH_OPTIONS STABLE_RELEASE TRIPLEO_ROOT TRIPLEO_SH_ARGS NETISO_V4 NETISO_V6 TOCI_JOBTYPE UNDERCLOUD_SSL RUN_TEMPEST_TESTS RUN_PING_TEST JOB_NAME OVB UNDERCLOUD_IDEMPOTENT MULTINODE CONTROLLER_HOSTS COMPUTE_HOSTS SUBNODES_SSH_KEY TEST_OVERCLOUD_DELETE OVERCLOUD OSINFRA UNDERCLOUD_SANITY_CHECK PINGTEST_TEMPLATE OVERCLOUD_PINGTEST_ARGS FEATURE_BRANCH; do
echo "export $VAR=\"${!VAR}\"" >> $TRIPLEO_ROOT/tripleo-ci/deploy.env
done
}

View File

@ -4,6 +4,7 @@
export ZUUL_BRANCH=${ZUUL_BRANCH:-""}
export OVERRIDE_ZUUL_BRANCH=${OVERRIDE_ZUUL_BRANCH:-""}
export STABLE_RELEASE=${STABLE_RELEASE:-""}
export FEATURE_BRANCH=${FEATURE_BRANCH:-""}
if [[ $ZUUL_BRANCH =~ ^stable/ ]]; then
export STABLE_RELEASE=${ZUUL_BRANCH#stable/}
fi
@ -12,6 +13,12 @@ if [[ $OVERRIDE_ZUUL_BRANCH =~ ^stable/ ]]; then
export STABLE_RELEASE=${OVERRIDE_ZUUL_BRANCH#stable/}
fi
# if we still don't have an stable branch, check if that
# is a feature branch
if [ -z "$STABLE_RELEASE" ] && [ "$ZUUL_BRANCH" != "master" ]; then
export FEATURE_BRANCH=$ZUUL_BRANCH
fi
export TRIPLEO_ROOT=${TRIPLEO_ROOT:-"/opt/stack/new"}
export PATH=/sbin:/usr/sbin:$PATH

View File

@ -364,11 +364,8 @@ function delorean_build {
pushd $TRIPLEO_ROOT/delorean
if [ -z "$STABLE_RELEASE" ]; then
sed -i -e "s%baseurl=.*%baseurl=https://trunk.rdoproject.org/centos7%" projects.ini
sed -i -e "s%distro=.*%distro=rpm-master%" projects.ini
sed -i -e "s%source=.*%source=master%" projects.ini
else
if [ -n "$STABLE_RELEASE" ]; then
# first check if we have a stable release
sed -i -e "s%baseurl=.*%baseurl=https://trunk.rdoproject.org/centos7-$STABLE_RELEASE%" projects.ini
if [ "$STABLE_RELEASE" = "newton" ]; then
sed -i -e "s%distro=.*%distro=$STABLE_RELEASE-rdo%" projects.ini
@ -376,6 +373,15 @@ function delorean_build {
sed -i -e "s%distro=.*%distro=rpm-$STABLE_RELEASE%" projects.ini
fi
sed -i -e "s%source=.*%source=stable/$STABLE_RELEASE%" projects.ini
elif [ -n "$FEATURE_BRANCH" ]; then
# next, check if we are testing for a feature branch
sed -i -e "s%baseurl=.*%baseurl=https://trunk.rdoproject.org/centos7%" projects.ini
sed -i -e "s%distro=.*%distro=rpm-$FEATURE_BRANCH%" projects.ini
sed -i -e "s%source=.*%source=$FEATURE_BRANCH%" projects.ini
else
sed -i -e "s%baseurl=.*%baseurl=https://trunk.rdoproject.org/centos7%" projects.ini
sed -i -e "s%distro=.*%distro=rpm-master%" projects.ini
sed -i -e "s%source=.*%source=master%" projects.ini
fi
sudo rm -rf data commits.sqlite
@ -472,8 +478,17 @@ function overcloud_images {
# (slagle) TODO: This needs to be fixed in python-tripleoclient or
# diskimage-builder!
# Ensure yum-plugin-priorities is installed
echo -e '#!/bin/bash\nyum install -y yum-plugin-priorities' | sudo tee /usr/share/diskimage-builder/elements/yum/pre-install.d/99-tmphacks
sudo chmod +x /usr/share/diskimage-builder/elements/yum/pre-install.d/99-tmphacks
# get the right path for diskimage-builder version
COMMON_ELEMENTS_PATH=$(python -c '
try:
import diskimage_builder.paths
diskimage_builder.paths.show_path("elements")
except:
print("/usr/share/diskimage-builder/elements")
')
echo -e '#!/bin/bash\nyum install -y yum-plugin-priorities' | sudo tee ${COMMON_ELEMENTS_PATH}/yum/pre-install.d/99-tmphacks
sudo chmod +x ${COMMON_ELEMENTS_PATH}/yum/pre-install.d/99-tmphacks
# To install the undercloud instack-undercloud is run as root,
# as a result all of the git repositories get cached to