project-config/jenkins/scripts/release-tools/make_branch.sh
Sean McGinnis 2b58a35c7a Exclude upper constraint updates for driverfixes branches
Driverfixes branches are meant to track their parent stable branches
and are supposed to be limited in scope to just driver fixes past
normal stable policy.

Since requirements are not branched along with these branches, there
is no need to have a change proposed to switch their upper constraints
to point to a driverfixes/ version as they just get abandoned.

Change-Id: I53e9a1dc20c7c4af1e67b640835b27e05a0d5ebf
2017-09-05 18:55:05 -05:00

77 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
#
# Script to create branches for a project
#
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set -e
set -x
if [[ $# -lt 3 ]]; then
echo "Usage: $0 repo_name branch_name git_reference"
echo
echo "Example: $0 openstack/oslo.config stable/kilo 1.9.2"
exit 2
fi
TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $TOOLSDIR/functions
REPO=$1
NEW_BRANCH=$2
START_POINT=$3
LPROJECT="$PROJECT"
PROJECT=$(basename $REPO)
branch_as_path_entry=$(echo $NEW_BRANCH | sed -s 's|/|-|g')
setup_temp_space branch-$PROJECT-$branch_as_path_entry
clone_repo $REPO
cd $REPO
LANG=C git review -s
if $(git branch -r | grep $NEW_BRANCH > /dev/null); then
echo "A $NEW_BRANCH branch already exists !"
cd ../..
rm -rf $MYTMPDIR
exit 0
fi
echo "Creating $NEW_BRANCH from $START_POINT"
git branch $NEW_BRANCH $START_POINT
REALSHA=`git show-ref -s $NEW_BRANCH`
git push gerrit $NEW_BRANCH
update_gitreview "$NEW_BRANCH"
# Do not update upper constraints on driverfixes branches
if [[ ! $NEW_BRANCH =~ driverfixes/ ]]; then
update_upper_constraints "$NEW_BRANCH"
fi
if [[ $NEW_BRANCH =~ stable/ ]]; then
series=$(echo $NEW_BRANCH | cut -f2 -d/)
if [[ -d releasenotes/source ]]; then
# Also update the reno settings, in master, to add the new
# series page.
echo "Updating reno"
git checkout master
$TOOLSDIR/add_release_note_page.sh $series .
else
echo "$REPO does not use reno, no update needed"
fi
fi