|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# This script has the following workflow |
| 4 | +# 1. Checkout the patch reference |
| 5 | +# 2. Run clang format against the review. |
| 6 | +# 3. Execute checkpatch |
1 | 7 | set -o pipefail |
2 | 8 | set -x |
3 | 9 |
|
4 | 10 | if [[ -n "$GERRIT_REFSPEC" ]]; then |
5 | | - GERRIT_REF="$GERRIT_REFSPEC" |
6 | | - REVISION="$GERRIT_PATCHSET_REVISION" |
7 | | - GERRIT_PUBLISH=true |
| 11 | + GERRIT_REF="$GERRIT_REFSPEC" |
| 12 | + REVISION="$GERRIT_PATCHSET_REVISION" |
| 13 | + GERRIT_PUBLISH=true |
8 | 14 | fi |
9 | 15 |
|
10 | | -if ! [ -d nfs-ganesha ]; then |
11 | | - GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -i $GERRITHUB_KEY" git clone --depth=1 -o gerrit ssh://$GERRIT_USER@review.gerrithub.io:29418/ffilz/nfs-ganesha.git -v |
| 16 | +if [ ! -d nfs-ganesha ]; then |
| 17 | + GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no -i $GERRITHUB_KEY" git \ |
| 18 | + clone --depth=1 \ |
| 19 | + -o gerrit \ |
| 20 | + ssh://$GERRIT_USER@review.gerrithub.io:29418/ffilz/nfs-ganesha.git -v |
12 | 21 | fi |
13 | 22 |
|
14 | 23 | ( cd nfs-ganesha && git fetch gerrit $GERRIT_REF && git checkout $REVISION ) |
15 | 24 |
|
| 25 | +job_url="${JENKINS_URL}/job/checkpatch/${BUILD_NUMBER}/console" |
| 26 | + |
| 27 | +# Install git-clang-format |
| 28 | +sudo dnf -qy git-clang-format |
| 29 | + |
| 30 | +pushd nfs-ganesha |
| 31 | +git clang-format -v \ |
| 32 | + --diff \ |
| 33 | + --style file:src/.clang-format \ |
| 34 | + --extensions c,cc,cpp,h,hpp \ |
| 35 | + HEAD~1 |
| 36 | +RETURN_VALUE=$? |
| 37 | +popd |
| 38 | + |
| 39 | +# Post message |
| 40 | +case ${RETURN_VALUE} in |
| 41 | + 0) |
| 42 | + MESSAGE="${job_url}: Success." |
| 43 | + VERIFIED="--verified +1" |
| 44 | + NOTIFY="--notify NONE" |
| 45 | + EXIT=0 |
| 46 | + ;; |
| 47 | + 1) |
| 48 | + MESSAGE="${job_url}: Failed" |
| 49 | + VERIFIED='--verified -1' |
| 50 | + NOTIFY="--notify all" |
| 51 | + EXIT=1 |
| 52 | + ;; |
| 53 | + *) |
| 54 | + MESSAGE="${job_url}: UNKNOWN" |
| 55 | + VERIFIED='' |
| 56 | + NOTIFY="--notify NONE" |
| 57 | + EXIT=1 |
| 58 | + ;; |
| 59 | +esac |
| 60 | + |
| 61 | +if [ "${GERRIT_PUBLISH}" == "true" ]; then |
| 62 | + ssh \ |
| 63 | + -l ${GERRIT_USER} \ |
| 64 | + -i ${GERRITHUB_KEY} \ |
| 65 | + -o StrictHostKeyChecking=no \ |
| 66 | + -p ${GERRIT_PORT} \ |
| 67 | + ${GERRIT_HOST} \ |
| 68 | + gerrit review \ |
| 69 | + --message "'${MESSAGE}'" \ |
| 70 | + --project ${GERRIT_PROJECT} \ |
| 71 | + ${VERIFIED} \ |
| 72 | + ${NOTIFY} \ |
| 73 | + ${GERRIT_PATCHSET_REVISION} |
| 74 | +else |
| 75 | + echo "Clang format review is not posted" |
| 76 | +fi |
| 77 | + |
16 | 78 | publish_checkpatch() { |
17 | | - local SSH_GERRIT="ssh -p 29418 -i $GERRITHUB_KEY $GERRIT_USER@review.gerrithub.io" |
18 | | - if [[ "$GERRIT_PUBLISH" == "true" ]]; then |
19 | | - tee /proc/$$/fd/1 | $SSH_GERRIT "gerrit review --json --project ffilz/nfs-ganesha $REVISION" |
20 | | - else |
21 | | - echo "Would have submit:" |
22 | | - echo -n "echo '" |
23 | | - cat |
24 | | - echo "' | $SSH_GERRIT \"gerrit review --json --project ffilz/nfs-ganesha $REVISION\"" |
| 79 | + local SSH_GERRIT="ssh -p 29418 -i $GERRITHUB_KEY $GERRIT_USER@review.gerrithub.io" |
| 80 | + |
| 81 | + if [[ "$GERRIT_PUBLISH" == "true" ]]; then |
| 82 | + tee /proc/$$/fd/1 | \ |
| 83 | + $SSH_GERRIT "gerrit review --json --project ffilz/nfs-ganesha $REVISION" |
| 84 | + else |
| 85 | + echo "Would have submit:" |
| 86 | + echo -n "echo '" |
| 87 | + cat |
| 88 | + echo "' | $SSH_GERRIT \"gerrit review --json --project ffilz/nfs-ganesha $REVISION\"" |
25 | 89 | fi |
26 | 90 | } |
27 | 91 |
|
28 | 92 | # cd to ~/checkpatch for checkpatch.pl as a hack to get config without modifying $HOME |
29 | | -GIT_DIR=nfs-ganesha/.git git show --format=email | \ |
30 | | - ( cd $WORKSPACE/ci-tests/build_scripts/checkpatch && ./checkpatch.pl -q - || true ) | \ |
31 | | - python $WORKSPACE/ci-tests/build_scripts/checkpatch/checkpatch-to-gerrit-json.py | \ |
32 | | - publish_checkpatch |
33 | | - |
34 | | - |
| 93 | +GIT_DIR=nfs-ganesha/.git git show --format=email | \ |
| 94 | + (cd $WORKSPACE/ci-tests/build_scripts/checkpatch && ./checkpatch.pl -q - || true ) | \ |
| 95 | + python $WORKSPACE/ci-tests/build_scripts/checkpatch/checkpatch-to-gerrit-json.py | \ |
| 96 | + publish_checkpatch |
0 commit comments