Skip to content

Commit 3682630

Browse files
committed
chore(repo): limit pre-push tests to changed packages
1 parent 9d34823 commit 3682630

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

mise.toml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,23 @@ run = "bun run lint"
3939

4040
[tasks."git:pre-push"]
4141
description = "Validate branch name, check deps, and run tests before push"
42-
run = """
42+
run = '''
4343
#!/usr/bin/env bash
4444
set -euo pipefail
4545
4646
bunx @gracefullight/validate-branch
4747
4848
CHANGED_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
6377
fi
64-
"""
78+
'''

0 commit comments

Comments
 (0)