Merge "Remove yangtools-4.0.x jobs"
[releng/builder.git] / jjb / autorelease / version-bump.sh
index f88423f0a86314fc65ff12a75d24ce1e374cb0fb..f54e0a3e85a6c5f853b9edb6013a35e6c4ec223f 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -l
 # SPDX-License-Identifier: EPL-1.0
 ##############################################################################
 # Copyright (c) 2017 The Linux Foundation and others.
@@ -9,12 +9,14 @@
 # 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"
@@ -24,32 +26,53 @@ BRANCH="$GERRIT_BRANCH"
 # Ensure we fail the job if any steps fail.
 set -eu -o pipefail
 
-git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
+# shellcheck disable=SC1090
+source ~/lf-env.sh
 
-# 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
+lf-activate-venv "git-review==1.28"
+
+# 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
+
+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"
+    commit_msg="Bump versions by x.y.(z+1)"
+else
+    commit_msg="Bump versions by x.(y+1).z"
+    # If we are branch cutting we also need to bump the docs/conf.yaml version
+    find . -type f -name conf.yaml -exec sed -i "s/version:.*/version: ${STREAM^}/" {} \;
+fi
 lftools version bump "$RELEASE_TAG"
 
-git submodule foreach "git commit -asm 'Bump versions by x.y.(z+1)'"
+# 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 '${commit_msg}'"
 # Only submodules need to be bumped, we can ignore autorelease's bump information
 git checkout -f
 
@@ -59,14 +82,8 @@ mkdir -p "$patch_dir"
 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
 
@@ -118,7 +135,7 @@ git submodule foreach git checkout -f
 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."