first commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
print_step() {
|
||||
printf '\n\033[33m[%s/6] %s\033[0m\n' "$1" "$2"
|
||||
}
|
||||
|
||||
print_ok() {
|
||||
printf '\033[32mOK\033[0m\n'
|
||||
}
|
||||
|
||||
ensure_pnpm() {
|
||||
if command -v pnpm >/dev/null 2>&1; then
|
||||
PNPM_CMD=(pnpm)
|
||||
return
|
||||
fi
|
||||
|
||||
if command -v corepack >/dev/null 2>&1; then
|
||||
LOCAL_CI_HOME="${TMPDIR:-/tmp}/incudal-local-ci"
|
||||
export COREPACK_HOME="$LOCAL_CI_HOME/corepack"
|
||||
mkdir -p "$COREPACK_HOME"
|
||||
mkdir -p "$LOCAL_CI_HOME/bin"
|
||||
cat > "$LOCAL_CI_HOME/bin/pnpm" <<'SH'
|
||||
#!/usr/bin/env bash
|
||||
exec corepack pnpm "$@"
|
||||
SH
|
||||
chmod +x "$LOCAL_CI_HOME/bin/pnpm"
|
||||
export PATH="$LOCAL_CI_HOME/bin:$PATH"
|
||||
PNPM_CMD=(corepack pnpm)
|
||||
return
|
||||
fi
|
||||
|
||||
printf '\033[31mFAILED: pnpm is not installed and corepack is unavailable\033[0m\n' >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
printf '\033[36m========================================\033[0m\n'
|
||||
printf '\033[36m Local CI Test (macOS)\033[0m\n'
|
||||
printf '\033[36m========================================\033[0m\n'
|
||||
|
||||
ensure_pnpm
|
||||
|
||||
print_step 1 "Installing dependencies..."
|
||||
"${PNPM_CMD[@]}" install --frozen-lockfile --ignore-scripts
|
||||
print_ok
|
||||
|
||||
print_step 2 "Generating Prisma Client..."
|
||||
export DATABASE_URL="postgresql://user:pass@localhost:5432/db"
|
||||
"${PNPM_CMD[@]}" --filter server exec prisma generate
|
||||
print_ok
|
||||
|
||||
print_step 3 "Running lint..."
|
||||
"${PNPM_CMD[@]}" lint
|
||||
print_ok
|
||||
|
||||
print_step 4 "Type checking client..."
|
||||
"${PNPM_CMD[@]}" --filter client type-check
|
||||
print_ok
|
||||
|
||||
print_step 5 "Type checking server..."
|
||||
"${PNPM_CMD[@]}" --filter server type-check
|
||||
print_ok
|
||||
|
||||
print_step 6 "Building..."
|
||||
"${PNPM_CMD[@]}" build
|
||||
print_ok
|
||||
|
||||
printf '\n\033[32m========================================\033[0m\n'
|
||||
printf '\033[32m All CI checks passed!\033[0m\n'
|
||||
printf '\033[32m========================================\033[0m\n'
|
||||
Reference in New Issue
Block a user