File tree Expand file tree Collapse file tree 3 files changed +65
-1
lines changed
Expand file tree Collapse file tree 3 files changed +65
-1
lines changed Original file line number Diff line number Diff line change 1+ #! /usr/bin/env sh
2+
3+ npm run prepush:check
Original file line number Diff line number Diff line change 2121 "dev:micro-services-emails-fetcher" : " npm run dev --prefix ./micro-services/emails-fetcher" ,
2222 "prettier:fix" : " npm run prettier:fix --prefix ./backend && npm run prettier:fix --prefix ./frontend && npm run prettier:fix --prefix ./micro-services/emails-fetcher" ,
2323 "prepare" : " husky" ,
24- "precommit:check" : " lint-staged"
24+ "precommit:check" : " lint-staged" ,
25+ "prepush:check" : " bash ./scripts/prepush-ci-check.sh"
2526 },
2627 "author" : " ankaboot" ,
2728 "license" : " AGPL-3.0" ,
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+
3+ set -euo pipefail
4+
5+ ROOT_DIR=" $( git rev-parse --show-toplevel) "
6+ cd " $ROOT_DIR "
7+
8+ BASE_REF=" origin/main"
9+
10+ if ! git rev-parse --verify --quiet " $BASE_REF " > /dev/null; then
11+ echo " [pre-push] Skipping checks: $BASE_REF not found. Run: git fetch origin main"
12+ exit 0
13+ fi
14+
15+ MERGE_BASE=" $( git merge-base HEAD " $BASE_REF " ) "
16+ CHANGED_FILES=" $( git diff --name-only " $MERGE_BASE " ...HEAD) "
17+
18+ if [ -z " $CHANGED_FILES " ]; then
19+ echo " [pre-push] No changes detected against $BASE_REF ."
20+ exit 0
21+ fi
22+
23+ RUN_BACKEND=0
24+ RUN_FRONTEND=0
25+
26+ while IFS= read -r file; do
27+ case " $file " in
28+ backend/* )
29+ RUN_BACKEND=1
30+ ;;
31+ frontend/* )
32+ RUN_FRONTEND=1
33+ ;;
34+ esac
35+ done <<< " $CHANGED_FILES"
36+
37+ if [ " $RUN_BACKEND " -eq 0 ] && [ " $RUN_FRONTEND " -eq 0 ]; then
38+ echo " [pre-push] No backend/frontend changes detected."
39+ exit 0
40+ fi
41+
42+ echo " [pre-push] Running CI-aligned checks..."
43+
44+ if [ " $RUN_BACKEND " -eq 1 ]; then
45+ echo " [pre-push] backend: test-ci:unit"
46+ npm run test-ci:unit --prefix ./backend
47+ echo " [pre-push] backend: lint"
48+ npm run lint --prefix ./backend
49+ echo " [pre-push] backend: prettier"
50+ npm run prettier --prefix ./backend
51+ fi
52+
53+ if [ " $RUN_FRONTEND " -eq 1 ]; then
54+ echo " [pre-push] frontend: lint"
55+ npm run lint --prefix ./frontend
56+ echo " [pre-push] frontend: prettier"
57+ npm run prettier --prefix ./frontend
58+ fi
59+
60+ echo " [pre-push] All checks passed."
You can’t perform that action at this time.
0 commit comments