build,travis: test commits format

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
This commit is contained in:
Etienne Champetier 2017-07-23 12:51:59 -07:00
parent 2ce9c3a64a
commit 78712dfca8
2 changed files with 39 additions and 0 deletions

View File

@ -11,4 +11,5 @@ before_script:
- ./.travis_do.sh download_sdk
script:
- ./.travis_do.sh test_commits
- ./.travis_do.sh test_packages

View File

@ -104,6 +104,44 @@ EOF
exit $RET
}
test_commits() {
RET=0
for commit in $(git rev-list ${TRAVIS_COMMIT_RANGE/.../..}); do
echo_blue "=== Checking commit '$commit'"
if git show --format='%P' -s $commit | grep -qF ' '; then
echo_red "Pull request should not include merge commits"
RET=1
fi
author="$(git show -s --format=%aN $commit)"
if echo $author | grep -q '\S\+\s\+\S\+'; then
echo_green "Author name ($author) seems ok"
else
echo_red "Author name ($author) need to be your real name 'firstname lastname'"
RET=1
fi
subject="$(git show -s --format=%s $commit)"
if echo "$subject" | grep -q '^[0-9A-Za-z,]\+: '; then
echo_green "Commit subject line seems ok ($subject)"
else
echo_red "Commit subject line MUST start with '<package name>: ' ($subject)"
RET=1
fi
body="$(git show -s --format=%b $commit)"
sob="$(git show -s --format='Signed-off-by: %aN <%aE>' $commit)"
if echo "$body" | grep -qF "$sob"; then
echo_green "Signed-off-by match author"
else
echo_red "Signed-off-by is missing or doesn't match author (should be '$sob')"
RET=1
fi
done
exit $RET
}
echo_blue "=== Travis ENV"
env
echo_blue "=== Travis ENV"