34756ddbdf
Under zuulv3 the behavior has changed significantly to now require specifying which repositories need to be cloned for each job, and zuul-cloner only copies the repositories that are already available. As soon as zuulv3 is released, our jobs relying on the old fallback behavior of checking out from a cache when present but using the upstream server in other situations will fail. The new script tools/clone_repo.sh handles the cases we have in the tools and jobs within this repository, and should also be usable from the tag-releases job. zuul is removed from the list of requirements so it is no longer installed when jobs run under tox. list_unreleased_changes.sh is updated to drop the use of the virtualenv, which was only present for zuul-cloner. The other updates in the patch are to change the tools to use the new script. Change-Id: Ic559d27881a9a89fb0dcb5295a4d7ed7c578112f Signed-off-by: Doug Hellmann <doug@doughellmann.com>
120 lines
3.0 KiB
Bash
120 lines
3.0 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Shared functions for shell scripts
|
|
#
|
|
|
|
# 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 title {
|
|
echo
|
|
if [ -t 1 ]; then
|
|
echo "$(tput bold)$(tput setaf 1)[ $1 ]$(tput sgr0)"
|
|
else
|
|
echo "[ $1 ]"
|
|
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"
|
|
|
|
title "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}"
|
|
}
|
|
|
|
|
|
function update_upper_constraints {
|
|
typeset branch="$1"
|
|
typeset uc_server='git.openstack.org'
|
|
typeset uc_path='cgit/openstack/requirements/plain/upper-constraints.txt'
|
|
typeset uc_url="https://${uc_server}/${uc_path}?h=${branch}"
|
|
|
|
title "Updating tox.ini for upper-constraints"
|
|
git checkout $branch
|
|
sed -i~ -e "s,-c.*{\(env:UPPER_CONSTRAINTS_FILE\)[^ ]*},-c{\1:$uc_url}," tox.ini
|
|
if ! git diff --exit-code >/dev/null 2>&1 ; then
|
|
git add tox.ini
|
|
git commit -m "Update UPPER_CONSTRAINTS_FILE for $branch"
|
|
git show
|
|
local shortbranch=$(basename $branch)
|
|
git review -t "create-${shortbranch}"
|
|
fi
|
|
}
|
|
|
|
|
|
_functions_bindir=$(realpath $(dirname $0))
|
|
|
|
function clone_repo {
|
|
typeset repo="$1"
|
|
typeset branch="$2"
|
|
if [ -z "$branch" ]; then
|
|
branch="master"
|
|
fi
|
|
output=$($_functions_bindir/clone_repo.sh --branch "$branch" $repo 2>&1)
|
|
_retval=$?
|
|
if [ $_retval -ne 0 ] ; then
|
|
echo "$output"
|
|
fi
|
|
|
|
return $_retval
|
|
}
|