ci: Include pre-build style check

This commit is contained in:
Dorota Czaplejewicz
2021-12-08 19:42:58 +00:00
parent f986f14220
commit 7a07f1616d
5 changed files with 38 additions and 3 deletions

View File

@ -93,7 +93,17 @@ test:
- apt-get -y build-dep .
- apt-get -y install clang-tidy
- ninja -C _build test
- tools/style-check _build
- tools/style-check_build _build
except:
variables:
- $PKG_ONLY == "1"
test_style:
stage: test
needs: []
script:
- apt-get -y build-dep .
- tools/style-check_source
except:
variables:
- $PKG_ONLY == "1"

1
debian/control vendored
View File

@ -27,6 +27,7 @@ Build-Depends:
libwayland-dev (>= 1.16),
lsb-release,
python3,
python3-ruamel.yaml,
rustc,
wayland-protocols (>= 1.14),
Standards-Version: 4.1.3

View File

@ -120,6 +120,16 @@ User interface modules should:
### Style
Note that some portions, like the .gitlab-ci.yml file have accummulated enough style/whitespace conflicts that an enforced style checker is now applied.
To fix your contributions before submitting a change, use:
```
./tools/style-check_source --apply
```
* * *
Code submitted should roughly match the style of surrounding code. Things that will *not* be accepted are ones that often lead to errors:
- skipping brackets `{}` after every `if()`, `else`, and similar ([SCI CERT C: EXP19-C](https://wiki.sei.cmu.edu/confluence/display/c/EXP19-C.+Use+braces+for+the+body+of+an+if%2C+for%2C+or+while+statement))

View File

@ -1,13 +1,15 @@
#!/bin/sh
# Enforces style check for the C parts of the project.
if [ -z "$1" ]; then
echo "Please pass directory to check."
echo "Please pass build directory to check."
exit 1
fi
cd "$1"
clang-tidy --checks=-clang-diagnostic-missing-braces,readability-braces-around-statements, \
--warnings-as-errors=readability-braces-around-statements \
-extra-arg=-Wno-unknown-warning-option \
../src/*.c ../eek/*.c ../eekboard/*.c

12
tools/style-check_source Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -e
# Enforces style check for the project.
THIS=$(realpath $0)
TOOLS=$(dirname $THIS)
cd $TOOLS/..
# The CI file seems to be touched regularly, and causing problems often,
# unlike layout files.
./tools/yamlfmt ./.gitlab-ci.yml $1