13 lines
579 B
Bash
Executable File
13 lines
579 B
Bash
Executable File
#!/bin/sh
|
|
# Reject pushes whose lockfile CI's npm (node 22) would refuse — a lock
|
|
# written by a newer local npm fails `npm ci` on the runner half a build in.
|
|
# Enable with: git config core.hooksPath .githooks
|
|
set -e
|
|
root=$(git rev-parse --show-toplevel)
|
|
if git diff --quiet origin/main...HEAD -- app/package.json app/package-lock.json 2>/dev/null; then
|
|
exit 0
|
|
fi
|
|
echo "pre-push: package.json/lock changed — validating with CI's npm (node:22)…"
|
|
docker run --rm -v "$root/app:/w" -w /w node:22 npm ci --dry-run --no-audit --no-fund >/dev/null
|
|
echo "pre-push: lockfile OK"
|