diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-08-29 12:41:53 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-08-29 12:41:53 +0200 |
commit | 5b5471e30a8885b309625529a10941613fefc48f (patch) | |
tree | 63806ccdab1045d3274b877e696391a98cb4fdc9 | |
parent | 76d318dbd13bd09a9690c0b459cb30f9ab6903f0 (diff) | |
parent | 7ea171adca8d28d10aae68cfe8f36094683bc491 (diff) | |
download | redot-engine-5b5471e30a8885b309625529a10941613fefc48f.tar.gz |
Merge pull request #78908 from zorbathut/pr_gitignore
Add static check for overzealous .gitignores and fix an example of such.
-rw-r--r-- | .github/workflows/static_checks.yml | 5 | ||||
-rw-r--r-- | misc/scripts/gitignore_check.sh | 26 | ||||
-rw-r--r-- | platform/android/java/editor/src/.gitignore | 1 |
3 files changed, 32 insertions, 0 deletions
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml index b47ef135a2..c096c63f9b 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -41,6 +41,11 @@ jobs: files=$(echo "$files" | grep -v 'thirdparty' | xargs -I {} sh -c 'echo "./{}"' | tr '\n' ' ') 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) run: | bash ./misc/scripts/file_format.sh changed.txt diff --git a/misc/scripts/gitignore_check.sh b/misc/scripts/gitignore_check.sh new file mode 100644 index 0000000000..f162e25391 --- /dev/null +++ b/misc/scripts/gitignore_check.sh @@ -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 diff --git a/platform/android/java/editor/src/.gitignore b/platform/android/java/editor/src/.gitignore new file mode 100644 index 0000000000..c081ec3425 --- /dev/null +++ b/platform/android/java/editor/src/.gitignore @@ -0,0 +1 @@ +!/debug |