Skip to content

Commit 23dbfb0

Browse files
committed
chore: 프리커밋/프리푸시 CI 패리티 훅 정렬
1 parent 824803a commit 23dbfb0

3 files changed

Lines changed: 93 additions & 5 deletions

File tree

.husky/pre-commit

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,35 @@
1-
# 커밋 메시지는 commit-msg 훅에서 검증됩니다
1+
echo "🔍 Running CI parity checks before commit..."
2+
3+
CHANGED_FILES=$(git diff --cached --name-only)
4+
RUN_WEB=0
5+
RUN_ADMIN=0
6+
7+
for FILE in $CHANGED_FILES; do
8+
case "$FILE" in
9+
apps/web/*)
10+
RUN_WEB=1
11+
;;
12+
apps/admin/*)
13+
RUN_ADMIN=1
14+
;;
15+
package.json|pnpm-lock.yaml|pnpm-workspace.yaml|turbo.json|.github/workflows/*)
16+
RUN_WEB=1
17+
RUN_ADMIN=1
18+
;;
19+
esac
20+
done
21+
22+
if [ "$RUN_WEB" -eq 1 ]; then
23+
pnpm --filter @solid-connect/web run ci:check
24+
fi
25+
26+
if [ "$RUN_ADMIN" -eq 1 ]; then
27+
pnpm --filter @solid-connect/admin run lint
28+
pnpm --filter @solid-connect/admin run format
29+
fi
30+
31+
if [ "$RUN_WEB" -eq 0 ] && [ "$RUN_ADMIN" -eq 0 ]; then
32+
echo "ℹ️ No CI-targeted changes detected; skipping parity checks."
33+
fi
34+
35+
echo "✅ CI parity checks passed!"

.husky/pre-push

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,47 @@
1-
echo "🔍 Running type check before push..."
2-
pnpm run typecheck
1+
echo "🏗️ Running CI parity builds before push..."
32

4-
echo "✅ All checks passed!"
3+
UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name "@{upstream}" 2>/dev/null || true)
4+
5+
if [ -n "$UPSTREAM" ]; then
6+
CHANGED_FILES=$(git diff --name-only "$UPSTREAM"...HEAD)
7+
else
8+
BASE_BRANCH="origin/main"
9+
MERGE_BASE=$(git merge-base HEAD "$BASE_BRANCH" 2>/dev/null || true)
10+
if [ -n "$MERGE_BASE" ]; then
11+
CHANGED_FILES=$(git diff --name-only "$MERGE_BASE"...HEAD)
12+
else
13+
CHANGED_FILES=$(git diff --name-only HEAD~1..HEAD)
14+
fi
15+
fi
16+
17+
RUN_WEB=0
18+
RUN_ADMIN=0
19+
20+
for FILE in $CHANGED_FILES; do
21+
case "$FILE" in
22+
apps/web/*)
23+
RUN_WEB=1
24+
;;
25+
apps/admin/*)
26+
RUN_ADMIN=1
27+
;;
28+
package.json|pnpm-lock.yaml|pnpm-workspace.yaml|turbo.json|.github/workflows/*)
29+
RUN_WEB=1
30+
RUN_ADMIN=1
31+
;;
32+
esac
33+
done
34+
35+
if [ "$RUN_WEB" -eq 1 ]; then
36+
NODE_ENV=production pnpm --filter @solid-connect/web run build
37+
fi
38+
39+
if [ "$RUN_ADMIN" -eq 1 ]; then
40+
NODE_ENV=production pnpm --filter @solid-connect/admin run build
41+
fi
42+
43+
if [ "$RUN_WEB" -eq 0 ] && [ "$RUN_ADMIN" -eq 0 ]; then
44+
echo "ℹ️ No CI-targeted changes detected; skipping parity builds."
45+
fi
46+
47+
echo "✅ CI parity builds passed!"

docs/development-workflow.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,18 @@ feat : 로그인 업데이트 # ❌ 콜론 앞에 공백
8181

8282
#### pre-commit
8383

84-
현재는 비활성화 상태입니다. 필요시 린트 검사 등을 추가할 수 있습니다.
84+
- 커밋 전 GitHub CI 품질 검사와 동일한 체크를 실행합니다.
85+
- 실행 명령:
86+
- `pnpm --filter @solid-connect/web run ci:check`
87+
- `pnpm --filter @solid-connect/admin run lint`
88+
- `pnpm --filter @solid-connect/admin run format`
89+
90+
#### pre-push
91+
92+
- 푸시 전 GitHub CI 빌드 단계와 동일한 빌드를 실행합니다.
93+
- 실행 명령:
94+
- `pnpm --filter @solid-connect/web run build`
95+
- `pnpm --filter @solid-connect/admin run build`
8596

8697
### Hooks가 동작하지 않는 경우
8798

0 commit comments

Comments
 (0)