X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=shell%2Fgerrit-fetch-dependencies.sh;h=c897f552e8f1b24a3f8303fe758812c10aec1791;hb=f216bdeee46b3c3299868bc6fdd2753785358f0a;hp=e9c337c15e26b5bf516e2607312d679c26b53796;hpb=bb5e0da850b1c5ed31cf76af62d91b506c13d8dd;p=releng%2Fglobal-jjb.git diff --git a/shell/gerrit-fetch-dependencies.sh b/shell/gerrit-fetch-dependencies.sh index e9c337c1..c897f552 100644 --- a/shell/gerrit-fetch-dependencies.sh +++ b/shell/gerrit-fetch-dependencies.sh @@ -8,11 +8,14 @@ # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html ############################################################################## +echo "---> gerrit-fetch-dependencies.sh" # Fetches patches all projects provided by comment trigger # # Takes a list of Gerrit patches and fetches all projects and cherry-pick # patches for projects. The trigger is # 'recheck: SPACE_SEPERATED_LIST_OF_PATCHES' +# or +# 'reverify: SPACE_SEPERATED_LIST_OF_PATCHES' # # NOTE: This script assumes the user will provide the correct dependency order # via the PATCHES list. @@ -22,14 +25,27 @@ set -eu -o pipefail REPOS_DIR="$WORKSPACE/.repos" -IFS=" " read -r -a PATCHES <<< "$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'recheck:' | awk -F: '{print $2}')" +IFS=" " read -r -a PATCHES <<< \ + "$(echo "$GERRIT_EVENT_COMMENT_TEXT" | \ + grep -E '(recheck:|reverify:)' | awk -F: '{print $2}')" + +# shellcheck disable=SC1090 +source ~/lf-env.sh + +lf-activate-venv "git-review==1.28" + projects=() -for patch in $(echo "${PATCHES[@]}"); do +for patch in "${PATCHES[@]}"; do json=$(curl -s "$GERRIT_URL/changes/$patch" | sed -e "s/)]}'//") project=$(echo "$json" | jq -r '.project') branch=$(echo "$json" | jq -r '.branch') + if [ "$GERRIT_CHANGE_NUMBER" == "$patch" ]; then + echo "WARN: GERRIT_CHANGE and $patch are one and the same. Ignoring patch..." + continue + fi + if [ ! -d "$REPOS_DIR/$project" ]; then git clone -q --depth 1 -b "$branch" "$GIT_URL/$project" "$REPOS_DIR/$project" @@ -38,7 +54,10 @@ for patch in $(echo "${PATCHES[@]}"); do fi pushd "$REPOS_DIR/$project" - git remote add gerrit "$GIT_URL/$project" + # If remote gerrit already exists just make sure path is expected + if ! git remote add gerrit "$GERRIT_URL/$project" > /dev/null 2>&1; then + git remote set-url gerrit "$GERRIT_URL/$project" + fi git review --cherrypick="$patch" popd done