From c40653b2b73686c6b741f69fdd0434110fc99365 Mon Sep 17 00:00:00 2001 From: Jonathan Bourdon Date: Tue, 5 May 2026 23:41:20 -0400 Subject: [PATCH] chore(ci): guards against tracked build artefacts --- .gitea/workflows/deploy-socialize.yml | 2 ++ .gitignore | 4 ++++ scripts/check-repo-hygiene.sh | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100755 scripts/check-repo-hygiene.sh 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."