-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
-# This script performs version bumping activities for an ODL release.
+# This script performs version bumping activities for an ODL release and branch
+# cutting.
echo "---> version-bump.sh"
# The only purpose of RELEASE_TAG in this script is to set the Gerrit topic.
# It is also used as a placeholder for version bumping but gets wiped out
# immediately to bump versions by x.y.(z+1).
+TOPIC="${RELEASE_TAG}"
RELEASE_TAG="${STREAM^}"
mkdir -p "$WORKSPACE/archives"
# Ensure we fail the job if any steps fail.
set -eu -o pipefail
-git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
+# Fail if branch cutting is not on master
+if [ "$BRANCH_CUT" = "true" ] && [ "$BRANCH" != "master" ]; then
+ echo "ERROR: Cannot branch cut on $BRANCH, its required to be on the master branch."
+ exit 1
+fi
-# TODO: Simplify once stable/nitrogen is no longer supported.
-for module in $(git submodule | awk '{ print $2 }')
-do
- pushd "$module"
- if [ "$GERRIT_BRANCH" == "stable/nitrogen" ] && [ "$module" == "yangtools" ]; then
- git checkout -b "v1.2.x" "origin/v1.2.x"
- else
+if [ "$BRANCH_CUT" = "false" ]; then
+ git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
+
+ for module in $(git submodule | awk '{ print $2 }')
+ do
+ pushd "$module"
git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
- fi
- popd
-done
+ popd
+ done
+fi
-# Setup Gerrit remove to ensure Change-Id gets set on commit.
-git config --global --add gitreview.username "jenkins-releng"
+# Setup Gerrit remote to ensure Change-Id gets set on commit.
+git config --global --add gitreview.username "jenkins-$SILO"
git review -s
+git remote -v
git submodule foreach "git review -s"
# Check if git state is clean
git status
-lftools version release "$RELEASE_TAG"
+if [ "$BRANCH_CUT" = "false" ]; then
+ lftools version release "$RELEASE_TAG"
+fi
lftools version bump "$RELEASE_TAG"
+# Ignore changes to Final distribution since that will be released separately
+pushd integration/distribution || true
+ git checkout -f opendaylight/pom.xml || true
+popd || true
+
git submodule foreach "git commit -asm 'Bump versions by x.y.(z+1)'"
# Only submodules need to be bumped, we can ignore autorelease's bump information
git checkout -f
for module in $(git submodule | awk '{ print $2 }')
do
pushd "$module"
- # TODO: Remove once stable/nitrogen is no longer supported.
- if [ "$GERRIT_BRANCH" == "stable/nitrogen" ] && [ "$module" == "yangtools" ]; then
- git format-patch --stdout "origin/v1.2.x" > "$patch_dir/${module//\//-}.patch"
- git bundle create "$patch_dir/${module//\//-}.bundle" "origin/v1.2.x..HEAD"
- else
- git format-patch --stdout "origin/${BRANCH,,}" > "$patch_dir/${module//\//-}.patch"
- git bundle create "$patch_dir/${module//\//-}.bundle" "origin/${BRANCH,,}..HEAD"
- fi
+ git format-patch --stdout "origin/${BRANCH,,}" > "$patch_dir/${module//\//-}.patch"
+ git bundle create "$patch_dir/${module//\//-}.bundle" "origin/${BRANCH,,}..HEAD"
popd
done
if [ "$DRY_RUN" = "false" ]
then
# Push up patches last, as long as nothing failed.
- git submodule foreach git review --yes -t "${RELEASE_TAG}"
+ git submodule foreach git review --yes -t "${TOPIC}"
fi
echo "Version bumping complete."