1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 22:52:34 +02:00

util/lint: Introduce linter for git sign-off-by line

For compliance and to check if the commit message matches the
development guidelines, add a linter checking for the sign-off-by line
in the commit message. Also, hook it up to the test_build.sh script
which is used for CI builds.

These scripts were copied from the coreboot repository and were adjusted
so that they work for flashrom.

Original-Signed-off-by: Felix Singer <felixsinger@posteo.net>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/70079
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>

Change-Id: I03f1827803f8492d60a0a44174d5822c2265bfcb
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/70243
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
Felix Singer 2022-11-28 16:22:06 +01:00
parent f6e5dd94f8
commit 83cd13aa7f
3 changed files with 75 additions and 0 deletions

View File

@ -26,6 +26,11 @@ if [ "$(basename "${CC}")" = "ccc-analyzer" ] || [ -n "${COVERITY_OUTPUT}" ]; th
fi
run_linter() {
./util/lint/lint-extended-020-signed-off-by
}
build_make () {
make clean
make -j $(nproc) CONFIG_EVERYTHING=yes
@ -67,5 +72,7 @@ build_meson () {
}
run_linter
build_make
build_meson

View File

@ -0,0 +1,45 @@
#!/usr/bin/env sh
#
# SPDX-License-Identifier: GPL-2.0-only
# This file is sourced by the linters so that each one doesn't have to
# specify these routines individually
LC_ALL=C export LC_ALL
if [ -z "$GIT" ]; then
GIT="$(command -v git)"
else
# If git is specified, Do a basic check that it runs and seems like
# it's actually git
if ! "${GIT}" --version | grep -q git; then
echo "Error: ${GIT} does not seem to be valid."
exit 1;
fi
fi
if [ "$(${GIT} rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
IN_GIT_TREE=1
else
IN_GIT_TREE=0
fi
if [ "${IN_GIT_TREE}" -eq 1 ] && [ -z "${GIT}" ]; then
echo "This test needs git to run. Please install it, then run this test again."
exit 1
fi
# Use git ls-files if the code is in a git repo, otherwise use find.
if [ "${IN_GIT_TREE}" -eq 1 ]; then
FIND_FILES="${GIT} ls-files"
else
FIND_FILES="find "
FINDOPTS="-type f"
fi
# Use git grep if the code is in a git repo, otherwise use grep.
if [ "${IN_GIT_TREE}" -eq 1 ]; then
GREP_FILES="${GIT} grep"
else
GREP_FILES="grep -r"
fi

View File

@ -0,0 +1,23 @@
#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-2.0-or-later
#
# DESCR: Check for a signed-off-by line on the latest commit
LINTDIR="$(
cd -- "$(dirname "$0")" > /dev/null 2>&1 || return
pwd -P
)"
# shellcheck source=helper_functions.sh
. "${LINTDIR}/helper_functions.sh"
if [ "${IN_GIT_TREE}" -eq 0 ]; then
exit 0
fi
# This test is mainly for the jenkins server
if ! ${GIT} log -n 1 | grep -q '[[:space:]]\+Signed-off-by: '; then
echo "No Signed-off-by line in commit message"
exit 1
fi