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:
parent
8da494986b
commit
3deb01f109
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue