github-ci: add cherry-pick line check

pull/10020/head
Victor Julien 3 years ago committed by Victor Julien
parent 4fda50da84
commit 6ee698c5fa

@ -78,6 +78,9 @@ jobs:
- run: /usr/bin/git config --global --add safe.directory /__w/suricata/suricata
- run: git fetch
- run: git clone https://github.com/OISF/libhtp -b 0.5.x
- name: Checking Cherry-pick lines
run: |
./qa/validate-cp.sh "${GITHUB_BASE_REF}"
- name: Building all commits
run: |
echo "Building commits from ${GITHUB_BASE_REF}."

@ -0,0 +1,40 @@
#!/bin/bash
#set -x
#set -e
if [ $# -ne 1 ]; then
echo "call with base branch (e.g. master-5.0.x)"
exit 1;
fi
BASE=$1
CHECK_BRANCH="${VALIDATE_CHECK_BRANCH:-remotes/origin/master}"
test_cherrypicked_line() {
REV=$1
#echo "\"REV $REV\""
CHERRY=$(echo $REV | grep '(cherry picked from commit' | awk '{print $5}'|awk -F')' '{print $1}' || return 1)
git branch -a --contains $CHERRY | grep " $CHECK_BRANCH$" &> /dev/null
if [ "$?" -ne 0 ]; then
echo -n "ERROR $CHERRY not found in $CHECK_BRANCH"
return 1
else
echo -n "OK "
fi
}
for rev in $(git rev-list --reverse origin/${BASE}..HEAD); do
echo -n "COMMIT $rev: "
GREPOP=$(git log --format=%B -n 1 $rev | grep 'cherry picked from commit')
if [ ! -z "$GREPOP" ]; then
while IFS= read -r line; do
test_cherrypicked_line "$line" || exit 1
done <<< "$GREPOP"
echo
else
echo "not a cherry-pick"
fi
done
Loading…
Cancel
Save