diff --git a/.gitea/workflows/deploy-socialize.yml b/.gitea/workflows/deploy-socialize.yml index 8421a40..3c46658 100644 --- a/.gitea/workflows/deploy-socialize.yml +++ b/.gitea/workflows/deploy-socialize.yml @@ -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 diff --git a/.gitignore b/.gitignore index 23dc7a3..20856a6 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,10 @@ Thumbs.db # .NET bin/ obj/ +**/[Bb]in/ +**/[Oo]bj/ +**/[Bb]in[\\]* +**/[Oo]bj[\\]* TestResults/ # Node diff --git a/scripts/check-repo-hygiene.sh b/scripts/check-repo-hygiene.sh new file mode 100755 index 0000000..8022adf --- /dev/null +++ b/scripts/check-repo-hygiene.sh @@ -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."