Add static check for overzealous .gitignores.
This commit is contained in:
parent
90f3992036
commit
7ea171adca
2 changed files with 31 additions and 0 deletions
5
.github/workflows/static_checks.yml
vendored
5
.github/workflows/static_checks.yml
vendored
|
@ -41,6 +41,11 @@ jobs:
|
||||||
files=$(echo "$files" | grep -v 'thirdparty' | xargs -I {} sh -c 'echo "./{}"' | tr '\n' ' ')
|
files=$(echo "$files" | grep -v 'thirdparty' | xargs -I {} sh -c 'echo "./{}"' | tr '\n' ' ')
|
||||||
echo "CHANGED_FILES=$files" >> $GITHUB_ENV
|
echo "CHANGED_FILES=$files" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# This needs to happen before Python and npm execution; it must happen before any extra files are written.
|
||||||
|
- name: .gitignore checks (gitignore_check.sh)
|
||||||
|
run: |
|
||||||
|
bash ./misc/scripts/gitignore_check.sh
|
||||||
|
|
||||||
- name: File formatting checks (file_format.sh)
|
- name: File formatting checks (file_format.sh)
|
||||||
run: |
|
run: |
|
||||||
bash ./misc/scripts/file_format.sh changed.txt
|
bash ./misc/scripts/file_format.sh changed.txt
|
||||||
|
|
26
misc/scripts/gitignore_check.sh
Normal file
26
misc/scripts/gitignore_check.sh
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
set -uo pipefail
|
||||||
|
shopt -s globstar
|
||||||
|
|
||||||
|
echo -e ".gitignore validation..."
|
||||||
|
|
||||||
|
# Get a list of files that exist in the repo but are ignored.
|
||||||
|
|
||||||
|
# The --verbose flag also includes files un-ignored via ! prefixes.
|
||||||
|
# We filter those out with a somewhat awkward `awk` directive.
|
||||||
|
# (Explanation: Split each line by : delimiters,
|
||||||
|
# see if the actual gitignore line shown in the third field starts with !,
|
||||||
|
# if it doesn't, print it.)
|
||||||
|
|
||||||
|
# ignorecase for the sake of Windows users.
|
||||||
|
|
||||||
|
output=$(git -c core.ignorecase=true check-ignore --verbose --no-index **/* | \
|
||||||
|
awk -F ':' '{ if ($3 !~ /^!/) print $0 }')
|
||||||
|
|
||||||
|
# Then we take this result and return success if it's empty.
|
||||||
|
if [ -z "$output" ]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
# And print the result if it isn't.
|
||||||
|
echo "$output"
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in a new issue