- opendaylight-infra-shiplogs:
maven-version: 'mvn33'
+- job-template:
+ name: autorelease-version-bump-{stream}
+ project-type: freestyle
+ node: centos7-autorelease-4c-16g
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: 7
+
+ parameters:
+ - lf-infra-parameters:
+ project: releng/autorelease
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ - string:
+ name: RELEASE_TAG
+ default: '{next-release-tag}'
+ description: |
+ Release that is being version bumped.
+ Eg. Lithium, Beryllium, Boron, Carbon, Carbon-SR1, Carbon-SR2...
+ - bool:
+ name: DRY_RUN
+ default: true
+ description: |
+ If DRY_RUN is enabled modifications are not published to Gerrit.
+ - maven-exec:
+ maven-version: mvn33
+
+ scm:
+ - lf-infra-gerrit-scm:
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-recursive: true
+ choosing-strategy: default
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: 240
+ jenkins-ssh-credential: opendaylight-jenkins-ssh
+
+ builders:
+ # force jenkins install of maven version before any shell scripts use it
+ - maven-target:
+ maven-version: mvn33
+ goals: '-version'
+ settings: autorelease-settings
+ settings-type: cfp
+ global-settings: odl-global-settings
+ global-settings-type: cfp
+ - autorelease-cfp
+ - shell: !include-raw-escape:
+ - ../global-jjb/shell/lftools-install.sh
+ - version-bump.sh
+
+ publishers:
+ - lf-infra-publish
- job-template:
name: 'autorelease-generate-release-notes-{stream}'
--- /dev/null
+#!/bin/bash
+# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
+##############################################################################
+# Copyright (c) 2017 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script performs version bumping activities for an ODL release.
+echo "---> version-bump.sh"
+
+mkdir -p "$WORKSPACE/archives"
+LOG_FILE="$WORKSPACE/archives/version-bump.log"
+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,,}"
+
+# Check if git state is clean
+git status
+
+lftools version release "$RELEASE_TAG"
+lftools version bump "$RELEASE_TAG"
+
+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
+
+# Generate git patches
+patch_dir="$WORKSPACE/archives/patches/version-bump"
+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"
+ popd
+done
+
+# Verify
+{
+ echo "----> Verify version bump"
+ git submodule foreach git show HEAD
+ git show HEAD
+ find . -name pom.xml -print0 | xargs -0 grep "$RELEASE_TAG" || true
+ git status
+ ls "$patch_dir"
+} | tee -a "$LOG_FILE"
+
+# Push
+if [ "$DRY_RUN" = "false" ]
+then
+ # Run a build here! 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
+
+ # 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"
+fi
+
+echo "Version bumping complete."