blob: a34501bfbbc44db43913126877f38e57561ea2ec [file] [log] [blame]
Arthur She87e7f392024-01-21 20:03:20 -08001- job:
2 name: tf-a-lts-verified-propagater
3 node: master
4 project-type: freestyle
5 concurrent: false
6 description:
7 Triggers whenever a patch in the lts branch get a Verified score.
8 It will vote the same score to the dependent patch
9 disabled: false
10 builders:
11 - shell: |-
12 #!/bin/bash
13 set -ex
14
15 echo "########################################################################"
16 echo " Gerrit Environment"
17 env |grep '^GERRIT'
18 echo "########################################################################"
19
20 SSH_PARAMS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PubkeyAcceptedKeyTypes=+ssh-rsa -p 29418 -i ${CI_BOT_KEY}"
21 GERRIT_URL="review.trustedfirmware.org"
22 GERRIT_QUERY_PARAMS="--dependencies --submit-records --format=JSON change:"
23 QUERY_DEPENDS_CMD="${SSH_PARAMS} ${CI_BOT_USERNAME}@${GERRIT_URL} gerrit query ${GERRIT_QUERY_PARAMS}${GERRIT_CHANGE_NUMBER}"
24 SET_VERIFIED_CMD="${SSH_PARAMS} ${CI_BOT_USERNAME}@${GERRIT_URL} gerrit review --verified"
25
26 change_url_base=${GERRIT_CHANGE_URL%/*}
27 patch_query=$(ssh ${QUERY_DEPENDS_CMD} | jq .)
28 dependsOn=$(echo ${patch_query} | jq -r 'select(.dependsOn)')
29 dependsOn_rev=($(echo ${dependsOn} | jq -r '.dependsOn[].revision'))
30 dependsOn_no=($(echo ${dependsOn} | jq -r '.dependsOn[].number'))
31 verified_status=$(echo ${patch_query} | jq -r 'select(.submitRecords) | .submitRecords[0].labels[] | select(.label == "Verified") | .status')
32 verified_value=0
33 if [ "${verified_status}" == "REJECT" ]; then
34 verified_value=-1
35 elif [ "${verified_status}" == "MAY" ]; then
36 verified_value=1
37 fi
38
39 for ((i=0; i<${#dependsOn_rev[@]}; i++))
40 do
41 echo "Set Verified ${verified_value} to: ${change_url_base}/${dependsOn_no[$i]}"
42 ssh ${SET_VERIFIED_CMD} ${verified_value} ${dependsOn_rev[$i]}
43 done
44 properties:
45 - build-discarder:
46 days-to-keep: 60
47 num-to-keep: 10
48 triggers:
49 - gerrit:
50 silent: true
51 server-name: 'review.trustedfirmware.org'
52 projects:
53 - branches:
54 - branch-compare-type: REG_EXP
55 branch-pattern: 'lts-v.*'
56 project-compare-type: PLAIN
57 project-pattern: 'TF-A/trusted-firmware-a'
58 trigger-on:
59 - comment-added-event:
60 approval-category: "Verified"
61 approval-value: 1
62 - comment-added-event:
63 approval-category: "Verified"
64 approval-value: -1
65 wrappers:
66 - timestamps
67 - credentials-binding:
68 - ssh-user-private-key:
69 credential-id: TFA_CI_BOT_USER_SSH_KEY
70 key-file-variable: CI_BOT_KEY
71 username-variable: CI_BOT_USERNAME
72 passphrase-variable: ''
73 publishers:
74 - workspace-cleanup