summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Yourtchenko <ayourtch@gmail.com>2020-06-03 19:30:31 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-06-16 14:17:28 +0000
commite04cb57e6a3808dd59bf2c28792ed513360bc930 (patch)
treeffcf8b30c13921dd557403db2cbd8029aa90c034
parenteb080ac6339668e3177f580d93e5c669839d2e62 (diff)
vpp-checkstyle-verify-{stream}: add the step to API check
This patch adds calling the crcchecker.py --check-patchset in the initial checkstyle path. (see change ID I5f13c0976d8a12a58131b3e270f2dc9c00dc7d8c) It adds also: - gerrit-refspec-parameter to be able to specify the patchset manually - credentials-binding for a WebEx Teams bot - I had them added via IT-19800 - necessary plumbing to use these credentials. It is done by a minimal curl setup, which posts into room "VPP API check failures", which I created to be able to monitor the behavior and jump in to discuss and help to sort out the changes that may be problematic. Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com> Change-Id: I4833aa929044413a1ac08ab80668f25c0db8b3ff
-rw-r--r--jjb/scripts/vpp/api-checkstyle.sh30
-rw-r--r--jjb/vpp/vpp.yaml9
2 files changed, 39 insertions, 0 deletions
diff --git a/jjb/scripts/vpp/api-checkstyle.sh b/jjb/scripts/vpp/api-checkstyle.sh
new file mode 100644
index 000000000..90740337e
--- /dev/null
+++ b/jjb/scripts/vpp/api-checkstyle.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+VPP_CRC_CHECKER="extras/scripts/crcchecker.py"
+VPP_CRC_CHECKER_CMD="$VPP_CRC_CHECKER --check-patchset"
+
+send_notify() {
+ # 'roomId' field from the response of:
+ # curl https://api.ciscospark.com/v1/memberships -H "Authorization: Bearer ${SECRET_WEBEX_TEAMS_ACCESS_TOKEN}"
+ WEBEX_TEAMS_ROOM_ID='Y2lzY29zcGFyazovL3VzL1JPT00vMzUzZmI3OTAtYTVjNS0xMWVhLWI4ZjYtMDUxN2I4NzFmOWU5'
+ curl https://api.ciscospark.com/v1/messages -X POST -H "Authorization: Bearer ${SECRET_WEBEX_TEAMS_ACCESS_TOKEN}" -H "Content-Type: application/json" --data '{"roomId":"'${WEBEX_TEAMS_ROOM_ID}'", "markdown": "'"${WEBEX_TEAMS_MESSAGE}"'" }' || true
+}
+
+if [ -f $VPP_CRC_CHECKER ]; then
+ echo "Running $VPP_CRC_CHECKER_CMD"
+ if $VPP_CRC_CHECKER_CMD; then
+ echo "API check successful"
+
+ # for now - notify the same room during the monitoring period about the successes as well
+ WEBEX_TEAMS_MESSAGE="API check successful for $GERRIT_REFSPEC - see $BUILD_URL"
+ send_notify
+ else
+ RET_CODE=$?
+ echo "API check failed: ret code $RET_CODE; please read https://wiki.fd.io/view/VPP/ApiChangeProcess and discuss with ayourtch@gmail.com if unsure how to proceed"
+ WEBEX_TEAMS_MESSAGE="API check FAILED for $GERRIT_REFSPEC - see $BUILD_URL"
+ send_notify
+ exit $RET_CODE
+ fi
+else
+ echo "Cannot find $VPP_CRC_CHECKER - skipping API compatibility check"
+fi
diff --git a/jjb/vpp/vpp.yaml b/jjb/vpp/vpp.yaml
index 216ec4003..dacd68500 100644
--- a/jjb/vpp/vpp.yaml
+++ b/jjb/vpp/vpp.yaml
@@ -531,6 +531,7 @@
os: '{os}'
- repo-name-parameter:
repo-name: '{repo-stream-part}.ubuntu.bionic.main'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -541,6 +542,11 @@
wrappers:
- fdio-infra-wrappers:
build-timeout: '{build-timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: VppApiCompatNotify
+ variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
+
triggers:
- gerrit:
@@ -602,6 +608,9 @@
- ../scripts/vpp/test-checkstyle.sh
- shell:
!include-raw-escape:
+ - ../scripts/vpp/api-checkstyle.sh
+ - shell:
+ !include-raw-escape:
- ../scripts/vpp/commitmsg.sh
publishers: