X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=shell%2Fgerrit-fetch-dependencies.sh;h=c897f552e8f1b24a3f8303fe758812c10aec1791;hb=0ff7cbacb76c80c8e2222d6d5917de5119c0d8fd;hp=830243fe14c2837de12e03a4e7e75bcc5a5d616d;hpb=9ace820ccb26638aad261697cb0a180e77af95e2;p=releng%2Fglobal-jjb.git diff --git a/shell/gerrit-fetch-dependencies.sh b/shell/gerrit-fetch-dependencies.sh index 830243fe..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" @@ -37,17 +53,6 @@ for patch in $(echo "${PATCHES[@]}"); do projects+=("$project") fi - # Workaround for git-review bug in v1.24 - # https://storyboard.openstack.org/#!/story/2001081 - set +u # Allow unbound variables for virtualenv - virtualenv --quiet "/tmp/v/git-review" - # shellcheck source=/tmp/v/git-review/bin/activate disable=SC1091 - source "/tmp/v/git-review/bin/activate" - pip install --quiet --upgrade pip - pip install --quiet --upgrade git-review - set -u - # End git-review workaround - pushd "$REPOS_DIR/$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