Arthur She | 87e7f39 | 2024-01-21 20:03:20 -0800 | [diff] [blame^] | 1 | - 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 |