Merge "Revert "Install odl-mdsal-trace in netvirt oxygen csit""
[releng/builder.git] / jjb / autorelease / version-bump.sh
index 8d2e454fb573171c21d6c29330478763a1b1b11c..f88423f0a86314fc65ff12a75d24ce1e374cb0fb 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
+# SPDX-License-Identifier: EPL-1.0
 ##############################################################################
 # Copyright (c) 2017 The Linux Foundation and others.
 #
 # This script performs version bumping activities for an ODL release.
 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).
+RELEASE_TAG="${STREAM^}"
+
 mkdir -p "$WORKSPACE/archives"
 LOG_FILE="$WORKSPACE/archives/version-bump.log"
 BRANCH="$GERRIT_BRANCH"
@@ -20,7 +25,23 @@ BRANCH="$GERRIT_BRANCH"
 set -eu -o pipefail
 
 git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
-git submodule foreach git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
+
+# 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
+        git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}"
+    fi
+    popd
+done
+
+# Setup Gerrit remove to ensure Change-Id gets set on commit.
+git config --global --add gitreview.username "jenkins-releng"
+git review -s
+git submodule foreach "git review -s"
 
 # Check if git state is clean
 git status
@@ -38,12 +59,21 @@ mkdir -p "$patch_dir"
 for module in $(git submodule | awk '{ print $2 }')
 do
     pushd "$module"
-    git format-patch --stdout "origin/${BRANCH,,}" > "$patch_dir/${module//\//-}.patch"
-    git bundle create "$patch_dir/${module//\//-}.bundle" "origin/${BRANCH,,}..HEAD"
+    # 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
     popd
 done
 
-# Verify
+##########
+# Verify #
+##########
+
 {
     echo "----> Verify version bump"
     git submodule foreach git show HEAD
@@ -53,25 +83,42 @@ done
     ls "$patch_dir"
 } | tee -a "$LOG_FILE"
 
-# Push
+#########
+# Build #
+#########
+
+MVN_GOALS=(clean install)
 if [ "$DRY_RUN" = "false" ]
 then
-    # Run a build here! Should be safe to run mvn clean deploy as nothing should be
+    # Should be safe to run mvn clean deploy as nothing should be
     # using the version bumped versions just yet.
-    ./scripts/fix-relativepaths.sh
-    "$MVN" clean deploy -Pq \
-    -s "$SETTINGS_FILE" \
-    -gs "$GLOBAL_SETTINGS_FILE" \
-    --show-version \
-    --batch-mode \
-    -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-    -Djenkins \
-    -Dmaven.repo.local=/tmp/r \
-    -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
+    MVN_GOALS=(clean deploy)
+fi
+
+./scripts/fix-relativepaths.sh
+"$MVN" "${MVN_GOALS[@]}" -Pq \
+-s "$SETTINGS_FILE" \
+-gs "$GLOBAL_SETTINGS_FILE" \
+-DaltDeploymentRepository="opendaylight-snapshot::default::https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot" \
+--show-version \
+--batch-mode \
+-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
+-Djenkins \
+-Dmaven.repo.local=/tmp/r \
+-Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
+
+# Clear any changes caused by Maven build
+git checkout -f
+git submodule foreach git checkout -f
+
+########
+# Push #
+########
 
+if [ "$DRY_RUN" = "false" ]
+then
     # Push up patches last, as long as nothing failed.
-    git submodule foreach "git remote add gerrit '$GIT_URL/$PROJECT'"
-    git submodule foreach "git review --yes -t '${RELEASE_TAG}' || true"
+    git submodule foreach git review --yes -t "${RELEASE_TAG}"
 fi
 
 echo "Version bumping complete."