From 94dd530823baa85222fe87d063b4bdb4fd3cd7ce Mon Sep 17 00:00:00 2001 From: Grendgi Date: Mon, 15 Jun 2026 13:30:54 +0300 Subject: [PATCH] Add learning hygiene CI guard --- .gitea/scripts/hygiene-check.sh | 24 ++++++++++++++++++++++++ .gitea/workflows/ci.yml | 7 +++++++ 2 files changed, 31 insertions(+) create mode 100644 .gitea/scripts/hygiene-check.sh diff --git a/.gitea/scripts/hygiene-check.sh b/.gitea/scripts/hygiene-check.sh new file mode 100644 index 0000000..29467d1 --- /dev/null +++ b/.gitea/scripts/hygiene-check.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +max_bytes=$((50 * 1024 * 1024)) +failed=0 + +while IFS= read -r -d '' file; do + case "$file" in + .env|*/.env|*.DS_Store|*/node_modules/*|*.tmp|*.temp|*.bak|*.orig|*.rej|*.zip|*.tar|*.tar.gz|*.tgz|*.rar|*.7z) + echo "Forbidden tracked file: $file" >&2 + failed=1 + ;; + esac + + if [ -f "$file" ]; then + size=$(wc -c < "$file") + if [ "$size" -gt "$max_bytes" ]; then + echo "Tracked file is larger than 50 MiB: $file ($size bytes)" >&2 + failed=1 + fi + fi +done < <(git ls-files -z) + +exit "$failed" diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 45de53d..49e5dd8 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -5,8 +5,15 @@ on: pull_request: jobs: + hygiene: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: bash .gitea/scripts/hygiene-check.sh + test: runs-on: ubuntu-latest + needs: hygiene steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5