blob: 6be46af7a9fdca4ce2cd3a82f6c23076a5b9fad5 [file] [log] [blame]
Kelvin Zhang461d2e12022-11-21 20:51:42 +08001#!/bin/bash
2#
3# Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
4#
5# SPDX-License-Identifier: MIT
6#
7
Kelvin Zhangcf643422022-11-22 15:28:31 +08008# $1: Review result
Kelvin Zhang461d2e12022-11-21 20:51:42 +08009gerrit_review_for_gerrit_topic() {
Kelvin Zhangcf643422022-11-22 15:28:31 +080010 [ -z "$MANUAL_GERRIT_TOPIC" ] && return
11
Kelvin Zhang461d2e12022-11-21 20:51:42 +080012 [ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
13 [ -z "$GERRIT_SERVER" ] && GERRIT_SERVER="scgit.amlogic.com"
14 [ -z "$GERRIT_PORT" ] && GERRIT_PORT="29418"
15 [ -z "$GERRIT_QUERY_RESULT" ] && GERRIT_QUERY_RESULT="$OUTPUT_DIR/topic_changes.txt"
16
Kelvin Zhangcf643422022-11-22 15:28:31 +080017 [ ! -f "$GERRIT_QUERY_RESULT" ] && echo "${FUNCNAME[0]}: No such file! $GERRIT_QUERY_RESULT" && exit 1
18 [ $# -ne 1 ] && echo "${FUNCNAME[0]}: Invalid parameters! $*" && exit 1
Kelvin Zhang461d2e12022-11-21 20:51:42 +080019
Kelvin Zhang341ad7e2022-11-22 16:48:05 +080020 if [ "$1" = "Start" ]; then
21 verify_param=""
Kelvin Zhang0d405652022-11-22 17:04:52 +080022 elif [ "$1" = "SUCCESS" ] || [ "$1" = "FAIL" ]; then
23 [ "$1" = "SUCCESS" ] && verify_score="+1"
24 [ "$1" = "FAIL" ] && verify_score="-1"
Kelvin Zhang341ad7e2022-11-22 16:48:05 +080025 verify_param="--verified $verify_score"
26 echo -e "======== Verifying Gerrit Topic: $MANUAL_GERRIT_TOPIC ========"
Kelvin Zhang0d405652022-11-22 17:04:52 +080027 else
28 echo "${FUNCNAME[0]}: Invalid parameter $1" && exit 1
Kelvin Zhang341ad7e2022-11-22 16:48:05 +080029 fi
30
Kelvin Zhang461d2e12022-11-21 20:51:42 +080031 review_msg="Build ${BUILD_URL}: $1"
32
33 GERRIT_CHANGE_NUMBERS=$(jq -r '.number // empty' $GERRIT_QUERY_RESULT)
34 GERRIT_PATCHSET_NUMBERS=$(jq -r '.currentPatchSet.number // empty' $GERRIT_QUERY_RESULT)
35
36 i=1
37 for GERRIT_CHANGE_NUMBER in $GERRIT_CHANGE_NUMBERS; do
38 GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_PATCHSET_NUMBERS | awk "{print \$$i}")
Kelvin Zhangcf643422022-11-22 15:28:31 +080039 [ "$1" != "Start" ] && echo -n -e "$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER $verify_score ...\t"
40 ssh -p $GERRIT_PORT $GERRIT_SERVER gerrit review "${verify_param}" -m "'${review_msg}'" $GERRIT_CHANGE_NUMBER,$GERRIT_PATCHSET_NUMBER
41 if [ "$1" != "Start" ]; then
42 if [ "$?" -eq 0 ]; then
Kelvin Zhang341ad7e2022-11-22 16:48:05 +080043 echo "done"
Kelvin Zhangcf643422022-11-22 15:28:31 +080044 else
45 echo "failed"
46 fi
Kelvin Zhang461d2e12022-11-21 20:51:42 +080047 fi
48 i=$((i+1))
49 done
50
Kelvin Zhang341ad7e2022-11-22 16:48:05 +080051 if [ "$1" != "Start" ]; then
52 i=$((i-1))
53 [ "$i" -eq 1 ] && echo -e "======== Verified $i Gerrit change for $MANUAL_GERRIT_TOPIC ========\n"
54 [ "$i" -gt 1 ] && echo -e "======== Verified $i Gerrit changes for $MANUAL_GERRIT_TOPIC ========\n"
55 fi
Kelvin Zhangcf643422022-11-22 15:28:31 +080056
Kelvin Zhangd931bc32022-11-23 10:21:55 +080057 [ "$1" = "FAIL" ] && exit 1
58
Kelvin Zhang5dfdeb32022-11-23 09:49:45 +080059 return 0
Kelvin Zhang461d2e12022-11-21 20:51:42 +080060}