742ba18990
Octavia has a diskimage-builder element to install octavia-lib. When creating an amphora image from an Octavia stable branch, the expectation is the octavia-lib code will match the same branch (master or stable). This patch updates the branch name and upper constraints for octavia-lib in Octavia on stable branch creation. This change is in line with I8eba64c886c187c8652f94735ca6153702203d17. Depends-On: https://review.opendev.org/#/c/745506 Change-Id: I31b762f631304636bafabec9c54cd31c6c91f124
142 lines
4.5 KiB
Bash
142 lines
4.5 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Shared functions for shell scripts
|
|
#
|
|
|
|
_functions_bindir=$(realpath $(dirname $0))
|
|
|
|
# Make sure custom grep options don't get in the way
|
|
unset GREP_OPTIONS
|
|
|
|
|
|
function lp_project_to_repo {
|
|
typeset proj="$1"
|
|
|
|
if [[ $proj == python-*client* ]]; then
|
|
echo $proj
|
|
elif [[ $proj == glance-store ]]; then
|
|
echo glance_store
|
|
elif [[ $proj == django-openstack-auth ]]; then
|
|
echo django_openstack_auth
|
|
else
|
|
# Some of the repository names don't match the launchpad names, e.g.
|
|
# python-stevedore and python-cliff.
|
|
echo $proj | sed -e 's|^python-||'
|
|
fi
|
|
}
|
|
|
|
|
|
function _cleanup_tmp {
|
|
rm -rf $MYTMPDIR
|
|
return 0
|
|
}
|
|
|
|
|
|
function setup_temp_space {
|
|
MYTMPDIR=`mktemp -d _tmp-${1}-XXX`
|
|
mkdir -p "$MYTMPDIR"
|
|
trap _cleanup_tmp EXIT
|
|
cd "$MYTMPDIR"
|
|
# NOTE(dhellmann): On some platforms mktemp returns a short name
|
|
# instead of a full path, so expand the full path by looking at
|
|
# where we ended up after the cd operation.
|
|
MYTMPDIR="$(pwd)"
|
|
}
|
|
|
|
|
|
|
|
function get_last_tag {
|
|
# Print the most recent tag for a ref. If no ref is specified, the
|
|
# currently checked out branch is examined.
|
|
local ref="$1"
|
|
if ! git describe --abbrev=0 --first-parent ${ref} >/dev/null 2>&1; then
|
|
echo ""
|
|
else
|
|
git describe --abbrev=0 --first-parent ${ref}
|
|
fi
|
|
}
|
|
|
|
|
|
function update_gitreview {
|
|
typeset branch="$1"
|
|
|
|
echo "Updating .gitreview"
|
|
git checkout $branch
|
|
# Remove a trailing newline, if present, to ensure consistent
|
|
# formatting when we add the defaultbranch line next.
|
|
typeset grcontents="$(echo -n "$(cat .gitreview | grep -v defaultbranch)")
|
|
defaultbranch=$branch"
|
|
echo "$grcontents" > .gitreview
|
|
git add .gitreview
|
|
git commit -m "Update .gitreview for $branch"
|
|
git show
|
|
local shortbranch=$(basename $branch)
|
|
git review -t "create-${shortbranch}" --yes
|
|
}
|
|
|
|
|
|
function update_upper_constraints {
|
|
typeset branch="$1"
|
|
typeset redirect_branch=$(basename $branch)
|
|
typeset uc_url="https://releases.openstack.org/constraints/upper/${redirect_branch}"
|
|
|
|
echo "Updating tox.ini for upper-constraints"
|
|
git checkout $branch
|
|
if [[ ! -f tox.ini ]]; then
|
|
echo "No tox.ini file, skipping constraints"
|
|
return 0
|
|
fi
|
|
sed -i~ -e "s,{\(env:UPPER_CONSTRAINTS_FILE\)[^ ]*},{env:TOX_CONSTRAINTS_FILE:$uc_url}," tox.ini
|
|
sed -i~ -e "s,{\(env:TOX_CONSTRAINTS_FILE\)[^ ]*},{\1:$uc_url}," tox.ini
|
|
# Octavia project specific
|
|
if [[ -f elements/amphora-agent/source-repository-amphora-agent ]]; then
|
|
sed -i~ -e "s,\(https://opendev.org/openstack/octavia\).*,\1 ${branch}," elements/amphora-agent/source-repository-amphora-agent
|
|
sed -i~ -e "s,\(file /opt/upper-constraints.txt\) \(.*\),\1 ${uc_url}," elements/amphora-agent/source-repository-amphora-agent
|
|
fi
|
|
if [[ -f elements/octavia-lib/source-repository-octavia-lib ]]; then
|
|
sed -i~ -e "s,\(https://opendev.org/openstack/octavia-lib\).*,\1 ${branch}," elements/octavia-lib/source-repository-octavia-lib
|
|
fi
|
|
if ! git diff --exit-code >/dev/null 2>&1 ; then
|
|
git add tox.ini
|
|
if [[ -f elements/amphora-agent/source-repository-amphora-agent ]]; then
|
|
git add elements/amphora-agent/source-repository-amphora-agent
|
|
fi
|
|
if [[ -f elements/octavia-lib/source-repository-octavia-lib ]]; then
|
|
git add elements/octavia-lib/source-repository-octavia-lib
|
|
fi
|
|
msg="Update TOX_CONSTRAINTS_FILE for $branch"
|
|
body="Update the URL to the upper-constraints file to point to the redirect
|
|
rule on releases.openstack.org so that anyone working on this branch
|
|
will switch to the correct upper-constraints list automatically when
|
|
the requirements repository branches.
|
|
|
|
Until the requirements repository has as $branch branch, tests will
|
|
continue to use the upper-constraints list on master."
|
|
git commit -m "$msg" -m "$body"
|
|
git show
|
|
local shortbranch=$(basename $branch)
|
|
git review -t "create-${shortbranch}" --yes
|
|
fi
|
|
}
|
|
|
|
|
|
function clone_repo {
|
|
typeset repo="$1"
|
|
typeset branch="$2"
|
|
|
|
set -e
|
|
|
|
# Sometimes we aren't given a branch, and when we aren't we don't
|
|
# want to pass the wrong arguments to clone_repo.sh.
|
|
if [ ! -z "$branch" ]; then
|
|
branch_arg="--branch"
|
|
fi
|
|
|
|
# Clone the repository using the given branch.
|
|
$_functions_bindir/clone_repo.sh $branch_arg $branch $repo
|
|
|
|
# We assume the job uses a git_config task to configure git
|
|
# properly.
|
|
git -C $repo review -s -v
|
|
}
|