ci: Add a codestyle.sh

This matches what we do in rpm-ostree.  Move the `glnx_fd_close`
bits out of `make syntax-check` in preparation for dropping that.
This commit is contained in:
Colin Walters 2022-05-31 10:57:00 -04:00
parent aea20704b5
commit 199ef821c8
4 changed files with 32 additions and 4 deletions

View File

@ -4,6 +4,9 @@ stage("Build") {
def n = 5 def n = 5
buildPod(memory: "2Gi", cpu: "${n}") { buildPod(memory: "2Gi", cpu: "${n}") {
checkout scm checkout scm
stage("Static analysis") {
shwrap("./ci/codestyle.sh")
}
stage("Core build") { stage("Core build") {
shwrap(""" shwrap("""
# fetch tags so `git describe` gives a nice NEVRA when building the RPM # fetch tags so `git describe` gives a nice NEVRA when building the RPM

4
cfg.mk
View File

@ -31,10 +31,6 @@ sc_glnx_errno_prefix_colon:
@prohibit='\<glnx_throw_errno_prefix *\(.*: ",' halt="don't add trailing : for glnx_throw_errno_prefix" \ @prohibit='\<glnx_throw_errno_prefix *\(.*: ",' halt="don't add trailing : for glnx_throw_errno_prefix" \
$(_sc_search_regexp) $(_sc_search_regexp)
sc_glnx_no_fd_close:
@prohibit='\<glnx_fd_close int' halt="Use glnx_autofd, not glnx_fd_close" \
$(_sc_search_regexp)
#SHELL=bash -x #SHELL=bash -x
show-vc-list-except: show-vc-list-except:
@$(VC_LIST_EXCEPT) @$(VC_LIST_EXCEPT)

26
ci/codestyle.sh Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Tests that validate structure of the source code;
# can be run without building it.
set -euo pipefail
# Don't hard require Rust
if command -v cargo >/dev/null; then
echo -n "checking rustfmt... "
for crate in $(find -iname Cargo.toml); do
if ! cargo fmt --manifest-path ${crate} -- --check; then
echo "cargo fmt failed; run: cd $(dirname ${crate}) && cargo fmt" 1>&2
exit 1
fi
done
echo "ok"
fi
echo -n 'grep-based static analysis... '
patterns=(glnx_fd_close)
for pat in "${patterns[@]}"; do
if git grep "${pat}" | grep -v codestyle\.sh; then
echo "Files matched prohibited pattern: ${pat}" 1>&2
exit 1
fi
done
echo ok

View File

@ -26,6 +26,9 @@
set -euo pipefail set -euo pipefail
set -x set -x
# First, basic static analysis
./ci/codestyle.sh
NOCONFIGURE=1 ./autogen.sh NOCONFIGURE=1 ./autogen.sh
srcdir="$(pwd)" srcdir="$(pwd)"