File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -39,16 +39,23 @@ run = "bun run lint"
3939
4040[tasks ."git:pre-push" ]
4141description = " Validate branch name, check deps, and run tests before push"
42- run = """
42+ run = '''
4343#!/usr/bin/env bash
4444set -euo pipefail
4545
4646bunx @gracefullight/validate-branch
4747
4848CHANGED_FILES=$(git diff --name-only origin/main...HEAD 2>/dev/null || git diff --name-only HEAD~1)
49+ CHANGED_PACKAGES=$(
50+ printf "%s\n" "$CHANGED_FILES" |
51+ cut -d/ -f1,2 |
52+ grep '^packages/' |
53+ sort -u
54+ )
4955
50- if echo "$CHANGED_FILES" | grep -q "^packages/"; then
51- for pkg in packages/*/package.json; do
56+ if [ -n "$CHANGED_PACKAGES" ]; then
57+ for pkg_dir in $CHANGED_PACKAGES; do
58+ pkg="$pkg_dir/package.json"
5259 test_cmd=$(jq -r '.scripts.test // empty' "$pkg")
5360 if [ -n "$test_cmd" ]; then
5461 bin=$(echo "$test_cmd" | awk '{print $1}')
@@ -59,6 +66,13 @@ if echo "$CHANGED_FILES" | grep -q "^packages/"; then
5966 fi
6067 done
6168
62- bun run --filter './packages/*' test
69+ for pkg_dir in $CHANGED_PACKAGES; do
70+ pkg="$pkg_dir/package.json"
71+ test_cmd=$(jq -r '.scripts.test // empty' "$pkg")
72+ if [ -n "$test_cmd" ]; then
73+ echo "Running tests for $pkg_dir"
74+ bun run --filter "./$pkg_dir" test
75+ fi
76+ done
6377fi
64- """
78+ '''
You can’t perform that action at this time.
0 commit comments