chore(ci): guards against tracked build artefacts
This commit is contained in:
@@ -10,6 +10,8 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Check repository hygiene
|
||||
run: ./scripts/check-repo-hygiene.sh
|
||||
- name: Install Docker CLI
|
||||
run: apt-get update && apt-get install -y docker.io
|
||||
- name: Login to Gitea container registry
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -22,6 +22,10 @@ Thumbs.db
|
||||
# .NET
|
||||
bin/
|
||||
obj/
|
||||
**/[Bb]in/
|
||||
**/[Oo]bj/
|
||||
**/[Bb]in[\\]*
|
||||
**/[Oo]bj[\\]*
|
||||
TestResults/
|
||||
|
||||
# Node
|
||||
|
||||
25
scripts/check-repo-hygiene.sh
Executable file
25
scripts/check-repo-hygiene.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
failed=0
|
||||
|
||||
tracked_build_outputs="$(git ls-files | grep -E '(^|/)([Bb]in|[Oo]bj)(/|\\)' || true)"
|
||||
if [ -n "$tracked_build_outputs" ]; then
|
||||
printf '%s\n' "Tracked build output paths found:" >&2
|
||||
printf '%s\n' "$tracked_build_outputs" >&2
|
||||
failed=1
|
||||
fi
|
||||
|
||||
tracked_backslash_paths="$(git ls-files | grep '\\' || true)"
|
||||
if [ -n "$tracked_backslash_paths" ]; then
|
||||
printf '%s\n' "Tracked paths containing literal backslashes found:" >&2
|
||||
printf '%s\n' "$tracked_backslash_paths" >&2
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if [ "$failed" -ne 0 ]; then
|
||||
printf '%s\n' "Remove generated files from Git before building." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf '%s\n' "Repository hygiene check passed."
|
||||
Reference in New Issue
Block a user