Add tf-a-lts-verified-propagater.yaml
This job is triggered whenever a patch in the lts branch get a Verified score.
It will vote the same score to the dependent patches.
Signed-off-by: Arthur She <arthur.she@linaro.org>
Change-Id: I5fc9e92899b5c77f93d3a5140ac1519680b97c76
diff --git a/tf-a-lts-verified-propagater.yaml b/tf-a-lts-verified-propagater.yaml
new file mode 100644
index 0000000..a34501b
--- /dev/null
+++ b/tf-a-lts-verified-propagater.yaml
@@ -0,0 +1,74 @@
+- job:
+ name: tf-a-lts-verified-propagater
+ node: master
+ project-type: freestyle
+ concurrent: false
+ description:
+ Triggers whenever a patch in the lts branch get a Verified score.
+ It will vote the same score to the dependent patch
+ disabled: false
+ builders:
+ - shell: |-
+ #!/bin/bash
+ set -ex
+
+ echo "########################################################################"
+ echo " Gerrit Environment"
+ env |grep '^GERRIT'
+ echo "########################################################################"
+
+ SSH_PARAMS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PubkeyAcceptedKeyTypes=+ssh-rsa -p 29418 -i ${CI_BOT_KEY}"
+ GERRIT_URL="review.trustedfirmware.org"
+ GERRIT_QUERY_PARAMS="--dependencies --submit-records --format=JSON change:"
+ QUERY_DEPENDS_CMD="${SSH_PARAMS} ${CI_BOT_USERNAME}@${GERRIT_URL} gerrit query ${GERRIT_QUERY_PARAMS}${GERRIT_CHANGE_NUMBER}"
+ SET_VERIFIED_CMD="${SSH_PARAMS} ${CI_BOT_USERNAME}@${GERRIT_URL} gerrit review --verified"
+
+ change_url_base=${GERRIT_CHANGE_URL%/*}
+ patch_query=$(ssh ${QUERY_DEPENDS_CMD} | jq .)
+ dependsOn=$(echo ${patch_query} | jq -r 'select(.dependsOn)')
+ dependsOn_rev=($(echo ${dependsOn} | jq -r '.dependsOn[].revision'))
+ dependsOn_no=($(echo ${dependsOn} | jq -r '.dependsOn[].number'))
+ verified_status=$(echo ${patch_query} | jq -r 'select(.submitRecords) | .submitRecords[0].labels[] | select(.label == "Verified") | .status')
+ verified_value=0
+ if [ "${verified_status}" == "REJECT" ]; then
+ verified_value=-1
+ elif [ "${verified_status}" == "MAY" ]; then
+ verified_value=1
+ fi
+
+ for ((i=0; i<${#dependsOn_rev[@]}; i++))
+ do
+ echo "Set Verified ${verified_value} to: ${change_url_base}/${dependsOn_no[$i]}"
+ ssh ${SET_VERIFIED_CMD} ${verified_value} ${dependsOn_rev[$i]}
+ done
+ properties:
+ - build-discarder:
+ days-to-keep: 60
+ num-to-keep: 10
+ triggers:
+ - gerrit:
+ silent: true
+ server-name: 'review.trustedfirmware.org'
+ projects:
+ - branches:
+ - branch-compare-type: REG_EXP
+ branch-pattern: 'lts-v.*'
+ project-compare-type: PLAIN
+ project-pattern: 'TF-A/trusted-firmware-a'
+ trigger-on:
+ - comment-added-event:
+ approval-category: "Verified"
+ approval-value: 1
+ - comment-added-event:
+ approval-category: "Verified"
+ approval-value: -1
+ wrappers:
+ - timestamps
+ - credentials-binding:
+ - ssh-user-private-key:
+ credential-id: TFA_CI_BOT_USER_SSH_KEY
+ key-file-variable: CI_BOT_KEY
+ username-variable: CI_BOT_USERNAME
+ passphrase-variable: ''
+ publishers:
+ - workspace-cleanup