X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Fmultipatch-distribution.sh;h=b136eda98525f7a39291914d3450ab6ba088752d;hb=c4f5571795775e56ec9bef76c40247c4c34cd755;hp=ae9791d7446c7ff0c94f35b7d5cb7d66b32b6fa6;hpb=ff384fb543da708ed8bd98e2f800dbb7fc15ae49;p=releng%2Fbuilder.git diff --git a/jjb/integration/multipatch-distribution.sh b/jjb/integration/multipatch-distribution.sh old mode 100644 new mode 100755 index ae9791d74..b136eda98 --- a/jjb/integration/multipatch-distribution.sh +++ b/jjb/integration/multipatch-distribution.sh @@ -1,3 +1,7 @@ +#!/bin/bash + +set -e + # TODO: 1) clean up inline todo's below :) # TODO: 2) Use just a topic branch to create a distribution. see this email: # https://lists.opendaylight.org/pipermail/discuss/2015-December/006040.html @@ -18,7 +22,7 @@ MAVEN_OPTIONS="$(echo --show-version \ rm -rf $BUILD_DIR mkdir -p $BUILD_DIR -cd $BUILD_DIR || exit 1 +cd $BUILD_DIR # Set up git committer name and email, needed for commit creation when cherry-picking. export EMAIL="sandbox@jenkins.opendaylight.org" @@ -83,6 +87,10 @@ fi echo "Patches to build: ${PATCHES_TO_BUILD}" IFS=',' read -ra PATCHES <<< "${PATCHES_TO_BUILD}" +# First phase: clone the necessary repos and set the patches up + +declare -a PROJECTS + # For each patch: # * Clone the project. # * Optionally, checkout a specific (typically unmerged) Gerrit patch. If none, @@ -114,9 +122,10 @@ do distribution_status="included" fi PROJECT_SHORTNAME="${PROJECT##*/}" # http://stackoverflow.com/a/3162500 + PROJECTS+=("${PROJECT_SHORTNAME}") echo "cloning project ${PROJECT}" git clone "https://git.opendaylight.org/gerrit/p/${PROJECT}" - cd ${PROJECT_SHORTNAME} || exit 1 + cd ${PROJECT_SHORTNAME} if [ "$(echo -n ${proto_patch} | tail -c 1)" == 'r' ]; then pure_patch="$(echo -n $proto_patch | head -c -1)" else @@ -146,34 +155,42 @@ do # Here 'r' means release. Useful for testing Nitrogen Odlparent changes. find . -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//g' fi - # Build project - "$MVN" clean install \ - -e ${fast_option} \ - -Dstream=oxygen \ - -Dgitid.skip=false \ - -Dmaven.gitcommitid.skip=false \ - --global-settings "$GLOBAL_SETTINGS_FILE" \ - --settings "$SETTINGS_FILE" \ - $MAVEN_OPTIONS - cd "${BUILD_DIR}" || exit 1 - # Since we've installed the artifacts, we can delete the build and save - # disk space - rm -rf "${PROJECT_SHORTNAME}" + cd "${BUILD_DIR}" done if [ "${distribution_status}" == "not_included" ]; then echo "adding integration/distribution" + PROJECTS+=(distribution) # clone distribution and add it as a module in root pom git clone "https://git.opendaylight.org/gerrit/p/integration/distribution" - cd distribution || exit 1 + cd distribution git checkout "${DISTRIBUTION_BRANCH_TO_BUILD}" + cd "${BUILD_DIR}" +fi + +# Second phase: build everything + +for PROJECT_SHORTNAME in "${PROJECTS[@]}"; do + pushd "${PROJECT_SHORTNAME}" # Build project "$MVN" clean install \ - -e -Pq \ + -e ${fast_option} \ -Dstream="$DISTROSTREAM" \ + -Dgitid.skip=false \ + -Dmaven.gitcommitid.skip=false \ --global-settings "$GLOBAL_SETTINGS_FILE" \ --settings "$SETTINGS_FILE" \ $MAVEN_OPTIONS - cd "${BUILD_DIR}" || exit 1 -fi + # Since we've installed the artifacts, we can clean the build and save + # disk space + "$MVN" clean \ + -e ${fast_option} \ + -Dstream="$DISTROSTREAM" \ + -Dgitid.skip=false \ + -Dmaven.gitcommitid.skip=false \ + --global-settings "$GLOBAL_SETTINGS_FILE" \ + --settings "$SETTINGS_FILE" \ + $MAVEN_OPTIONS + popd +done