X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fautorelease%2Fversion-bump.sh;h=1980f77df94a823286db48255891552b89a44589;hb=b839a835f780cf9a899ca4275ae92f1e4aee5578;hp=4b4aea4391b014b25480f93be876eb36b0776a39;hpb=cca9cd0681f4970b31d136845c92fbf3ba30712f;p=releng%2Fbuilder.git diff --git a/jjb/autorelease/version-bump.sh b/jjb/autorelease/version-bump.sh index 4b4aea439..1980f77df 100644 --- a/jjb/autorelease/version-bump.sh +++ b/jjb/autorelease/version-bump.sh @@ -1,5 +1,5 @@ -#!/bin/bash -# @License EPL-1.0 +#!/bin/bash -l +# SPDX-License-Identifier: EPL-1.0 ############################################################################## # Copyright (c) 2017 The Linux Foundation and others. # @@ -9,9 +9,16 @@ # 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" LOG_FILE="$WORKSPACE/archives/version-bump.log" BRANCH="$GERRIT_BRANCH" @@ -19,16 +26,50 @@ BRANCH="$GERRIT_BRANCH" # Ensure we fail the job if any steps fail. set -eu -o pipefail -git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}" -git submodule foreach git checkout -b "${BRANCH,,}" "origin/${BRANCH,,}" +pip install --user --quiet --upgrade git-review + +# 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,,}" + popd + done +fi + +# 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 @@ -43,7 +84,10 @@ do popd done -# Verify +########## +# Verify # +########## + { echo "----> Verify version bump" git submodule foreach git show HEAD @@ -53,25 +97,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 install -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 "${TOPIC}" fi echo "Version bumping complete."