blob: 24c3e3d0fabefb61f27e48553a0c4ad190535b04 [file] [log] [blame]
- 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}" == "OK" ]; 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