Add clang-tidy check to display warnings on GitHub
This commit is contained in:
parent
957f7d2ec3
commit
73918ce8af
38
.github/workflows/format.yml
vendored
38
.github/workflows/format.yml
vendored
|
@ -17,9 +17,8 @@ jobs:
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1000
|
fetch-depth: 1000
|
||||||
|
|
||||||
- name: Configure git
|
- name: Fetch base branch
|
||||||
run: |
|
run: git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF"
|
||||||
git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF" --depth=1000
|
|
||||||
|
|
||||||
- name: Install clang-format
|
- name: Install clang-format
|
||||||
run: |
|
run: |
|
||||||
|
@ -35,3 +34,36 @@ jobs:
|
||||||
with:
|
with:
|
||||||
name: Patches
|
name: Patches
|
||||||
path: ./*.patch
|
path: ./*.patch
|
||||||
|
test-clang-tidy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: infinitime/infinitime-build
|
||||||
|
steps:
|
||||||
|
# This workaround fixes the error "unsafe repository (REPO is owned by someone else)".
|
||||||
|
# See https://github.com/actions/checkout/issues/760 and https://github.com/actions/checkout/issues/766
|
||||||
|
# The fix in "actions/checkout@v2" was not sufficient as the build process also uses git (to get the current
|
||||||
|
# commit hash, for example).
|
||||||
|
- name: Workaround permission issues
|
||||||
|
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
|
- name: Checkout source files
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
fetch-depth: 1000
|
||||||
|
- name: Fetch base branch
|
||||||
|
run: git fetch origin "$GITHUB_BASE_REF":"$GITHUB_BASE_REF"
|
||||||
|
- name: Install clang-tidy
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install clang-tidy-12
|
||||||
|
- name: Prepare environment
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
SOURCES_DIR: .
|
||||||
|
run: |
|
||||||
|
. docker/build.sh
|
||||||
|
GetGcc
|
||||||
|
GetNrfSdk
|
||||||
|
GetMcuBoot
|
||||||
|
CmakeGenerate
|
||||||
|
- run: tests/test-tidy.sh
|
||||||
|
|
25
tests/test-tidy.sh
Executable file
25
tests/test-tidy.sh
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "$GITHUB_BASE_REF" ]
|
||||||
|
then
|
||||||
|
echo "This script is only meant to be run in a GitHub Workflow"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHANGED_FILES=$(git diff --name-only "$GITHUB_BASE_REF"...HEAD)
|
||||||
|
|
||||||
|
for file in $CHANGED_FILES
|
||||||
|
do
|
||||||
|
[ -e "$file" ] || continue
|
||||||
|
case "$file" in
|
||||||
|
src/libs/*|src/FreeRTOS/*) continue ;;
|
||||||
|
*.cpp|*.h)
|
||||||
|
echo "::group::$file"
|
||||||
|
clang-tidy-12 -p build "$file" || true
|
||||||
|
echo "::endgroup::"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in a new issue